@@ -3,6 +3,7 @@ name: Nightly
33
44# This job is run at 04:00 UTC every day or on demand.
55on :
6+ pull_request :
67 workflow_dispatch :
78 schedule :
89 - cron : ' 0 4 * * *'
1415 BUILD_DIR : " ${{github.workspace}}/build"
1516
1617jobs :
17- fuzz-test :
18- name : Fuzz test
19- strategy :
20- fail-fast : false
21- matrix :
22- build_type : [Debug, Release]
23- compiler : [{c: clang, cxx: clang++}]
24-
25- runs-on : ubuntu-latest
26-
27- steps :
28- - name : Checkout repository
29- uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
30- with :
31- fetch-depth : 0
32-
33- - name : Install apt packages
34- run : |
35- sudo apt-get update
36- sudo apt-get install -y cmake hwloc libhwloc-dev libnuma-dev libtbb-dev
37-
38- - name : Configure CMake
39- run : >
40- cmake
41- -B ${{github.workspace}}/build
42- -DCMAKE_BUILD_TYPE=${{matrix.build_type}}
43- -DCMAKE_C_COMPILER=${{matrix.compiler.c}}
44- -DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
45- -DUMF_TESTS_FAIL_ON_SKIP=ON
46- -DUMF_DEVELOPER_MODE=ON
47- -DUMF_BUILD_FUZZTESTS=ON
48-
49- - name : Build
50- run : cmake --build ${{github.workspace}}/build --config ${{matrix.build_type}} --verbose -j$(nproc)
51-
52- - name : Fuzz long test
53- working-directory : ${{github.workspace}}/build
54- run : ctest -C ${{matrix.build_type}} --output-on-failure --verbose -L "fuzz-long"
55-
56- valgrind :
57- name : Valgrind
58- strategy :
59- fail-fast : false
60- matrix :
61- tool : ['memcheck', 'drd', 'helgrind']
62- runs-on : ubuntu-latest
63-
64- steps :
65- - name : Checkout repository
66- uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
67- with :
68- fetch-depth : 0
69-
70- - name : Install apt packages
71- run : |
72- sudo apt-get update
73- sudo apt-get install -y cmake hwloc libhwloc-dev libnuma-dev libtbb-dev valgrind
74-
75- - name : Configure CMake
76- run : >
77- cmake
78- -B ${{github.workspace}}/build
79- -DCMAKE_BUILD_TYPE=Debug
80- -DUMF_FORMAT_CODE_STYLE=OFF
81- -DUMF_DEVELOPER_MODE=ON
82- -DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
83- -DUMF_BUILD_LEVEL_ZERO_PROVIDER=OFF
84- -DUMF_BUILD_CUDA_PROVIDER=OFF
85- -DUMF_USE_VALGRIND=1
86- -DUMF_TESTS_FAIL_ON_SKIP=ON
87-
88- - name : Build
89- run : cmake --build ${{github.workspace}}/build --config Debug -j$(nproc)
90-
91- - name : Run tests under valgrind
92- run : ${{github.workspace}}/test/test_valgrind.sh ${{github.workspace}} ${{github.workspace}}/build ${{matrix.tool}}
93-
94- Windows-generators :
95- name : Windows ${{matrix.generator}} generator
96- strategy :
97- matrix :
98- os : ['windows-2019', 'windows-2022']
99- build_type : [Release]
100- compiler : [{c: cl, cxx: cl}]
101- shared_library : ['ON', 'OFF']
102- static_hwloc : ['ON', 'OFF']
103- generator : ['Ninja', 'NMake Makefiles']
104-
105- runs-on : ${{matrix.os}}
106-
107- steps :
108- - name : Checkout
109- uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
110- with :
111- fetch-depth : 0
112-
113- - name : Set VCPKG_PATH with hwloc
114- if : matrix.static_hwloc == 'OFF'
115- run : echo "VCPKG_PATH='${{github.workspace}}/build/vcpkg/packages/hwloc_x64-windows;${{github.workspace}}/build/vcpkg/packages/tbb_x64-windows;${{github.workspace}}/build/vcpkg/packages/jemalloc_x64-windows'" >> $env:GITHUB_ENV
116-
117- - name : Set VCPKG_PATH without hwloc
118- if : matrix.static_hwloc == 'ON'
119- run : echo "VCPKG_PATH='${{github.workspace}}/build/vcpkg/packages/tbb_x64-windows;${{github.workspace}}/build/vcpkg/packages/jemalloc_x64-windows'" >> $env:GITHUB_ENV
120-
121- - name : Initialize vcpkg
122- uses : lukka/run-vcpkg@5e0cab206a5ea620130caf672fce3e4a6b5666a1 # v11.5
123- env :
124- VCPKG_PATH : ${{env.VCPKG_PATH}}
125- with :
126- vcpkgGitCommitId : 3dd44b931481d7a8e9ba412621fa810232b66289
127- vcpkgDirectory : ${{env.BUILD_DIR}}/vcpkg
128- vcpkgJsonGlob : ' **/vcpkg.json'
129-
130- - name : Install dependencies
131- run : vcpkg install
132-
133- - name : Install Ninja
134- if : matrix.generator == 'Ninja'
135- uses : seanmiddleditch/gha-setup-ninja@96bed6edff20d1dd61ecff9b75cc519d516e6401 # v5
136-
137- - name : Configure MSVC environment
138- uses : ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
139-
140- - name : Configure build
141- run : >
142- cmake
143- -B ${{env.BUILD_DIR}}
144- -DCMAKE_PREFIX_PATH="${{env.VCPKG_PATH}}"
145- -DCMAKE_C_COMPILER=${{matrix.compiler.c}}
146- -DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
147- -G "${{matrix.generator}}"
148- -DUMF_BUILD_SHARED_LIBRARY=${{matrix.shared_library}}
149- -DUMF_LINK_HWLOC_STATICALLY=${{matrix.static_hwloc}}
150- -DUMF_FORMAT_CODE_STYLE=OFF
151- -DUMF_DEVELOPER_MODE=ON
152- -DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
153- -DUMF_BUILD_LEVEL_ZERO_PROVIDER=ON
154- -DUMF_BUILD_CUDA_PROVIDER=ON
155- -DUMF_TESTS_FAIL_ON_SKIP=ON
156-
157- - name : Build UMF
158- shell : cmd
159- run : cmake --build ${{env.BUILD_DIR}} --config ${{matrix.build_type}} -j %NUMBER_OF_PROCESSORS%
160-
161- - name : Run tests
162- shell : cmd
163- working-directory : ${{env.BUILD_DIR}}
164- run : ctest -C ${{matrix.build_type}} --output-on-failure --test-dir test
165-
166- icx :
167- name : ICX
168- env :
169- VCPKG_PATH : " ${{github.workspace}}/build/vcpkg/packages/hwloc_x64-windows;${{github.workspace}}/build/vcpkg/packages/tbb_x64-windows;${{github.workspace}}/build/vcpkg/packages/jemalloc_x64-windows"
170- strategy :
171- matrix :
172- os : ['windows-2019', 'windows-2022']
173- build_type : [Debug]
174- compiler : [{c: icx, cxx: icx}]
175- shared_library : ['ON', 'OFF']
176- include :
177- - os : windows-2022
178- build_type : Release
179- compiler : {c: icx, cxx: icx}
180- shared_library : ' ON'
181-
182- runs-on : ${{matrix.os}}
183-
184- steps :
185- - name : Checkout
186- uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
187- with :
188- fetch-depth : 0
189-
190- - name : Initialize vcpkg
191- uses : lukka/run-vcpkg@5e0cab206a5ea620130caf672fce3e4a6b5666a1 # v11.5
192- with :
193- vcpkgGitCommitId : 3dd44b931481d7a8e9ba412621fa810232b66289
194- vcpkgDirectory : ${{env.BUILD_DIR}}/vcpkg
195- vcpkgJsonGlob : ' **/vcpkg.json'
196-
197- - name : Install dependencies
198- run : vcpkg install
199-
200- - name : Install Ninja
201- uses : seanmiddleditch/gha-setup-ninja@96bed6edff20d1dd61ecff9b75cc519d516e6401 # v5
202-
203- - name : Download icx compiler
204- env :
205- # Link source: https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler-download.html
206- CMPLR_LINK : " https://registrationcenter-download.intel.com/akdlm/IRC_NAS/15a35578-2f9a-4f39-804b-3906e0a5f8fc/w_dpcpp-cpp-compiler_p_2024.2.1.83_offline.exe"
207- run : |
208- Invoke-WebRequest -Uri "${{ env.CMPLR_LINK }}" -OutFile compiler_install.exe
209-
210- - name : Install icx compiler
211- shell : cmd
212- run : |
213- start /b /wait .\compiler_install.exe -s -x -f extracted --log extract.log
214- extracted\bootstrapper.exe -s --action install --eula=accept -p=NEED_VS2017_INTEGRATION=0 ^
215- -p=NEED_VS2019_INTEGRATION=0 -p=NEED_VS2022_INTEGRATION=0 --log-dir=.
216-
217- - name : Configure build
218- shell : cmd
219- run : |
220- call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat"
221- call "C:\Program Files (x86)\Intel\oneAPI\setvars-vcvarsall.bat"
222- cmake ^
223- -B ${{env.BUILD_DIR}} ^
224- -DCMAKE_PREFIX_PATH="${{env.VCPKG_PATH}}" ^
225- -DCMAKE_C_COMPILER=${{matrix.compiler.c}} ^
226- -DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}} ^
227- -G Ninja ^
228- -DUMF_BUILD_SHARED_LIBRARY=${{matrix.shared_library}} ^
229- -DUMF_FORMAT_CODE_STYLE=OFF ^
230- -DUMF_DEVELOPER_MODE=ON ^
231- -DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON ^
232- -DUMF_BUILD_LEVEL_ZERO_PROVIDER=ON ^
233- -DUMF_BUILD_CUDA_PROVIDER=ON ^
234- -DUMF_TESTS_FAIL_ON_SKIP=ON
235-
236- - name : Build UMF
237- shell : cmd
238- run : |
239- call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat"
240- call "C:\Program Files (x86)\Intel\oneAPI\setvars-vcvarsall.bat"
241- cmake --build ${{env.BUILD_DIR}} --config ${{matrix.build_type}} -j %NUMBER_OF_PROCESSORS%
242-
243- - name : Run tests
244- shell : cmd
245- working-directory : ${{env.BUILD_DIR}}
246- run : |
247- call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat"
248- call "C:\Program Files (x86)\Intel\oneAPI\setvars-vcvarsall.bat"
249- ctest -C ${{matrix.build_type}} --output-on-failure --test-dir test
250-
251- # Scenarios where UMF_LINK_HWLOC_STATICALLY is set to OFF and hwloc is not installed in the system
252- # The hwloc library is fetched implicitly
253- hwloc-fallback :
254- name : " Fallback to static hwloc build"
255- strategy :
256- matrix :
257- include :
258- - os : ' ubuntu-latest'
259- build_type : Release
260- number_of_processors : ' $(nproc)'
261- - os : ' windows-latest'
262- build_type : Release
263- number_of_processors : ' $Env:NUMBER_OF_PROCESSORS'
264-
265- runs-on : ${{matrix.os}}
266-
267- steps :
268- - name : Install dependencies
269- if : matrix.os == 'ubuntu-latest'
270- run : sudo apt-get install -y libnuma-dev
271-
272- - name : Checkout
273- uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
274- with :
275- fetch-depth : 0
276-
277- - name : Configure build
278- run : >
279- cmake
280- -B ${{env.BUILD_DIR}}
281- -DCMAKE_BUILD_TYPE=${{matrix.build_type}}
282- -DUMF_BUILD_SHARED_LIBRARY=ON
283- -DUMF_BUILD_EXAMPLES=OFF
284- -DUMF_DEVELOPER_MODE=ON
285- -DUMF_LINK_HWLOC_STATICALLY=OFF
286- -DUMF_TESTS_FAIL_ON_SKIP=ON
287-
288- - name : Build UMF
289- run : >
290- cmake
291- --build ${{env.BUILD_DIR}}
292- --config ${{matrix.build_type}}
293- -j ${{matrix.number_of_processors}}
294-
295- - name : Run tests
296- working-directory : ${{env.BUILD_DIR}}
297- run : ctest -C ${{matrix.build_type}} --output-on-failure --test-dir test
298-
29918 L0 :
30019 uses : ./.github/workflows/reusable_gpu.yml
30120 with :
@@ -311,25 +30,4 @@ jobs:
31130 uses : ./.github/workflows/reusable_gpu.yml
31231 with :
31332 provider : " CUDA"
314- runner : " CUDA"
315-
316- # Full execution of QEMU tests
317- QEMU :
318- uses : ./.github/workflows/reusable_qemu.yml
319- with :
320- short_run : false
321- # Beside the 2 LTS Ubuntu, we also test this on the latest Ubuntu - to be updated
322- # every 6 months, so we verify the latest version of packages (compilers, etc.).
323- os : " ['ubuntu-22.04', 'ubuntu-24.04', 'ubuntu-24.10']"
324-
325- Benchmarks :
326- uses : ./.github/workflows/reusable_benchmarks.yml
327- permissions :
328- contents : write
329- pull-requests : write
330- with :
331- pr_no : ' 0'
332- bench_script_params : ' --save Baseline_PVC'
333-
334- SYCL :
335- uses : ./.github/workflows/reusable_sycl.yml
33+ runner : " CUDA"
0 commit comments