You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[CI] Use oneAPI for Windows postcommit builds (#16355)
Getting this working was an unbelievable amount of work. I hit so many
weird issues caused by dumb Windows things (case insensitivity, cmd vs
bash, bugs in cmake/ninja/sccache themselves) but finally I got
something that consistently passes.
You can see the funniest dumb Windows issue in the comment in the CMake
file change.
The basic idea is to extend the Windows build workflow to allow using
`icx`, add an action to setup the oneAPI environment, call it from the
build action and the test action (since we need some of the shared libs
on path even for testing), and fix some oneAPI-only build issues.
We need to do some Powershell magic after calling the oneAPI setup bat
script because the environment variables get lost since it's run in a
subprocess.
We also switch to `ccache` instead of `sccache`, because `sccache`
doesn't support `icx` (actually neither does `ccache`, but I added it
upstream [here](ccache/ccache#1533) and we are
using a local build of `ccache`, it was easier to add support to
`ccache`). Manually tested it to confirmed cache reads and write are
working as expected.
At some point we should probably investigate why some tests fail or some
compiler flags are required with `icx` only and not `cl`, but let's do
that as separate work because I am done with Windows for now.
I already set up all Windows runners used here to work with this change.
Next I'll add oneAPI builds on Linux, which I really hope is easier.
---------
Signed-off-by: Sarnie, Nick <[email protected]>
0 commit comments