44 CC : icx
55 CXX : icpx
66 FC : ifx
7- LINUX_CPP_COMPONENTS : intel-oneapi-compiler-dpcpp-cpp
8- LINUX_FORTRAN_COMPONENTS : intel-oneapi-compiler-fortran
97# https://github.com/oneapi-src/oneapi-ci/blob/master/.github/workflows/build_all.yml
108 CTEST_NO_TESTS_ACTION : error
11- CMAKE_BUILD_PARALLEL_LEVEL : 4
12- CTEST_PARALLEL_LEVEL : 0
139 CMAKE_BUILD_TYPE : Release
10+ CMAKE_GENERATOR : Ninja
11+ # don't need Ninja but it prints the command lines by default which is good for debugging
12+
13+ # debug triggers asan build errors, peculiar to GitHub Actions
1414
1515on :
1616 push :
1717 paths :
1818 - " **.c"
19- - " **.cpp"
2019 - " **.h"
20+ - " **.cpp"
2121 - " **.f90"
2222 - " **.F90"
2323 - " **.cmake"
2424 - " **/CMakeLists.txt"
2525 - " .github/workflows/oneapi-linux.yml"
26+ - " .github/workflows/oneapi*.sh"
2627 - " !memcheck.cmake"
28+ - " !coverage.cmake"
29+ - " !example/*"
30+ workflow_dispatch :
31+
32+ # avoid wasted runs
33+ concurrency :
34+ group : ${{ github.workflow }}-${{ github.ref }}
35+ cancel-in-progress : true
2736
2837
2938jobs :
3241 runs-on : ubuntu-latest
3342 timeout-minutes : 10
3443
44+ strategy :
45+ matrix :
46+ oneapi : [2025.1]
3547 steps :
3648 - uses : actions/checkout@v4
3749
@@ -41,21 +53,28 @@ jobs:
4153 with :
4254 path : |
4355 /opt/intel/oneapi
44- key : install -apt
56+ key : oneapi-${{ matrix.oneapi }} -apt
4557
4658 - name : non-cache install oneAPI
4759 if : steps.cache-install.outputs.cache-hit != 'true'
4860 timeout-minutes : 5
4961 run : |
5062 .github/workflows/oneapi_setup_apt_repo_linux.sh
51- sudo apt install ${{ env.LINUX_CPP_COMPONENTS }} ${{ env.LINUX_FORTRAN_COMPONENTS }}
63+ sudo apt install --no-install-recommends intel-oneapi-compiler-dpcpp-cpp- ${{ matrix.oneapi }} intel-oneapi-compiler-fortran- ${{ matrix.oneapi }}
5264
5365 - name : Setup Intel oneAPI environment
5466 run : |
5567 source /opt/intel/oneapi/setvars.sh
5668 printenv >> $GITHUB_ENV
5769
58- - run : cmake --workflow --preset default
70+ - run : cmake --workflow default
71+
72+ - name : Upload log failure
73+ if : failure()
74+ uses : actions/upload-artifact@v4
75+ with :
76+ name : oneapi-${{ matrix.oneapi }}-${{ runner.os }}-CMakeConfigureLog.yaml
77+ path : build/CMakeFiles/CMakeConfigureLog.yaml
5978
6079 - name : exclude unused files from cache
6180 if : steps.cache-install.outputs.cache-hit != 'true'
0 commit comments