1717 description : A list of OSes
1818 type : string
1919 default : " ['Ubuntu', 'Windows']"
20- build_type :
21- description : A list of build types
22- type : string
23- default : " ['Debug', 'Release']"
2420 shared_lib :
2521 description : A list of options for building shared library
2622 type : string
@@ -30,14 +26,16 @@ permissions:
3026 contents : read
3127
3228env :
33- BUILD_DIR : " ${{github.workspace}}/build"
34- INSTL_DIR : " ${{github.workspace}}/install-dir"
29+ BUILD_DEBUG_DIR : " ${{github.workspace}}/debug/build"
30+ BUILD_RELEASE_DIR : " ${{github.workspace}}/release/build"
31+ INSTL_DEBUG_DIR : " ${{github.workspace}}/debug/install-dir"
32+ INSTL_RELEASE_DIR : " ${{github.workspace}}/release/install-dir"
3533 COVERAGE_DIR : " ${{github.workspace}}/coverage"
3634
3735jobs :
3836 gpu :
3937 env :
40- 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;"
38+ VCPKG_PATH : " ${{github.workspace}}/vcpkg/packages/hwloc_x64-windows;${{github.workspace}}/vcpkg/packages/tbb_x64-windows;${{github.workspace}}/vcpkg/packages/jemalloc_x64-windows;"
4139 COVERAGE_NAME : " exports-coverage-${{inputs.provider}}-${{inputs.runner}}"
4240 # run only on upstream; forks will not have the HW
4341 if : github.repository == 'oneapi-src/unified-memory-framework'
4644 matrix :
4745 shared_library : ${{ fromJSON(inputs.shared_lib)}}
4846 os : ${{ fromJSON(inputs.os)}}
49- build_type : ${{ fromJSON(inputs.build_type)}}
50- name : GPU (${{matrix.os}}, build_type=${{matrix.build_type}}, shared=${{matrix.shared_library}})
47+ name : GPU (${{matrix.os}}, shared=${{matrix.shared_library}})
5148 runs-on : ["DSS-${{inputs.runner}}", "DSS-${{matrix.os}}"]
5249
5350 steps :
7269 with :
7370 fetch-depth : 0
7471
75- - name : Get information about platform
72+ - name : [Lin] Get information about platform
7673 if : matrix.os == 'Ubuntu'
7774 run : .github/scripts/get_system_info.sh
7875
8178 uses : lukka/run-vcpkg@5e0cab206a5ea620130caf672fce3e4a6b5666a1 # v11.5
8279 with :
8380 vcpkgGitCommitId : ea2a964f9303270322cf3f2d51c265ba146c422d # 1.04.2025
84- vcpkgDirectory : ${{env.BUILD_DIR }}/vcpkg
81+ vcpkgDirectory : ${{github.workspace }}/vcpkg
8582 vcpkgJsonGlob : ' **/vcpkg.json'
8683
8784 - name : " [Win] Install dependencies"
@@ -90,13 +87,48 @@ jobs:
9087
9188 # note: disable all providers except the one being tested
9289 # '-DCMAKE_SUPPRESS_REGENERATION=ON' is the WA for the error: "CUSTOMBUILD : CMake error : Cannot restore timestamp"
93- - name : Configure build
90+ - name : Configure build (Debug)
91+ run : >
92+ cmake
93+ -DCMAKE_PREFIX_PATH="${{env.VCPKG_PATH}};${{env.EXTRA_CMAKE_PATH}}"
94+ -B ${{env.BUILD_DEBUG_DIR}}
95+ -DCMAKE_INSTALL_PREFIX="${{env.INSTL_DEBUG_DIR}}"
96+ -DCMAKE_BUILD_TYPE=Debug
97+ -DCMAKE_C_COMPILER=${{env.C_COMPILER}}
98+ -DCMAKE_CXX_COMPILER=${{env.CXX_COMPILER}}
99+ -DUMF_BUILD_SHARED_LIBRARY=${{matrix.shared_library}}
100+ -DUMF_BUILD_BENCHMARKS=ON
101+ -DUMF_BUILD_BENCHMARKS_MT=ON
102+ -DUMF_BUILD_TESTS=ON
103+ -DUMF_BUILD_GPU_TESTS=ON
104+ -DUMF_BUILD_GPU_EXAMPLES=ON
105+ -DUMF_DEVELOPER_MODE=ON
106+ -DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
107+ -DUMF_BUILD_CUDA_PROVIDER=OFF
108+ -DUMF_BUILD_LEVEL_ZERO_PROVIDER=OFF
109+ -DUMF_BUILD_${{inputs.provider}}_PROVIDER=ON
110+ -DUMF_TESTS_FAIL_ON_SKIP=ON
111+ ${{ matrix.os == 'Ubuntu' && '-DUMF_USE_COVERAGE=ON' || '' }}
112+ ${{ matrix.os == 'Windows' && '-DCMAKE_SUPPRESS_REGENERATION=ON' || '' }}
113+
114+ - name : Build UMF (Debug)
115+ run : cmake --build ${{env.BUILD_DEBUG_DIR}} --config Debug -j ${{env.PROCS}}
116+
117+ - name : Run tests (Debug)
118+ working-directory : ${{env.BUILD_DEBUG_DIR}}
119+ run : ctest -C Debug --output-on-failure --test-dir test
120+
121+ - name : Run examples (Debug)
122+ working-directory : ${{env.BUILD_DEBUG_DIR}}
123+ run : ctest --output-on-failure --test-dir examples -C Debug
124+
125+ - name : Configure build (Release)
94126 run : >
95127 cmake
96128 -DCMAKE_PREFIX_PATH="${{env.VCPKG_PATH}};${{env.EXTRA_CMAKE_PATH}}"
97- -B ${{env.BUILD_DIR }}
98- -DCMAKE_INSTALL_PREFIX="${{env.INSTL_DIR }}"
99- -DCMAKE_BUILD_TYPE=${{matrix.build_type}}
129+ -B ${{env.BUILD_RELEASE_DIR }}
130+ -DCMAKE_INSTALL_PREFIX="${{env.INSTL_RELEASE_DIR }}"
131+ -DCMAKE_BUILD_TYPE=Release
100132 -DCMAKE_C_COMPILER=${{env.C_COMPILER}}
101133 -DCMAKE_CXX_COMPILER=${{env.CXX_COMPILER}}
102134 -DUMF_BUILD_SHARED_LIBRARY=${{matrix.shared_library}}
@@ -111,37 +143,36 @@ jobs:
111143 -DUMF_BUILD_LEVEL_ZERO_PROVIDER=OFF
112144 -DUMF_BUILD_${{inputs.provider}}_PROVIDER=ON
113145 -DUMF_TESTS_FAIL_ON_SKIP=ON
114- ${{ matrix.os == 'Ubuntu' && matrix.build_type == 'Debug' && '-DUMF_USE_COVERAGE=ON' || '' }}
115146 ${{ matrix.os == 'Windows' && '-DCMAKE_SUPPRESS_REGENERATION=ON' || '' }}
116147
117- - name : Build UMF
118- run : cmake --build ${{env.BUILD_DIR }} --config ${{matrix.build_type}} -j ${{env.PROCS}}
148+ - name : Build UMF (Release)
149+ run : cmake --build ${{env.BUILD_RELEASE_DIR }} --config Release -j ${{env.PROCS}}
119150
120- - name : Run tests
121- working-directory : ${{env.BUILD_DIR }}
122- run : ctest -C ${{matrix.build_type}} --output-on-failure --test-dir test
151+ - name : Run tests (Release)
152+ working-directory : ${{env.BUILD_RELEASE_DIR }}
153+ run : ctest -C Release --output-on-failure --test-dir test
123154
124- - name : Run examples
125- working-directory : ${{env.BUILD_DIR }}
126- run : ctest --output-on-failure --test-dir examples -C ${{matrix.build_type}}
155+ - name : Run examples (Release)
156+ working-directory : ${{env.BUILD_RELEASE_DIR }}
157+ run : ctest --output-on-failure --test-dir examples -C Release
127158
128- - name : Run benchmarks
129- if : matrix.build_type == 'Release'
130- working-directory : ${{env.BUILD_DIR}}
131- run : ctest --output-on-failure --test-dir benchmark -C ${{matrix.build_type}} --exclude-regex umf-multithreaded
159+ - name : Run benchmarks (Release)
160+ working-directory : ${{env.BUILD_RELEASE_DIR}}
161+ run : ctest --output-on-failure --test-dir benchmark -C Release --exclude-regex umf-multithreaded
132162
133- - name : Check coverage
134- if : ${{ matrix.build_type == 'Debug' && matrix. os == 'Ubuntu' }}
135- working-directory : ${{env.BUILD_DIR }}
163+ - name : [Lin] Check coverage (Debug)
164+ if : ${{ matrix.os == 'Ubuntu' }}
165+ working-directory : ${{env.BUILD_DEBUG_DIR }}
136166 run : |
137167 export COVERAGE_FILE_NAME=${{env.COVERAGE_NAME}}-shared-${{matrix.shared_library}}
138168 echo "COVERAGE_FILE_NAME: $COVERAGE_FILE_NAME"
139- .. /scripts/coverage/coverage_capture.sh $COVERAGE_FILE_NAME
169+ ${{github.workspace}} /scripts/coverage/coverage_capture.sh $COVERAGE_FILE_NAME
140170 mkdir -p ${{env.COVERAGE_DIR}}
141171 mv ./$COVERAGE_FILE_NAME ${{env.COVERAGE_DIR}}
142172
143- - uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
144- if : ${{ matrix.build_type == 'Debug' && matrix.os == 'Ubuntu' }}
173+ - name : [Lin] Upload coverage
174+ uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
175+ if : ${{ matrix.os == 'Ubuntu' }}
145176 with :
146177 name : ${{env.COVERAGE_NAME}}-shared-${{matrix.shared_library}}
147178 path : ${{env.COVERAGE_DIR}}
0 commit comments