Skip to content

Commit 51d80da

Browse files
committed
build and test Debug and Release configs in single job
1 parent ebdb14f commit 51d80da

File tree

2 files changed

+66
-92
lines changed

2 files changed

+66
-92
lines changed

.github/workflows/pr_push.yml

Lines changed: 1 addition & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -17,90 +17,33 @@ permissions:
1717
packages: read
1818

1919
jobs:
20-
CodeChecks:
21-
uses: ./.github/workflows/reusable_checks.yml
22-
FastBuild:
23-
name: Fast builds
24-
needs: [CodeChecks]
25-
uses: ./.github/workflows/reusable_fast.yml
26-
Build:
27-
name: Basic builds
28-
needs: [FastBuild]
29-
uses: ./.github/workflows/reusable_basic.yml
30-
DevDax:
31-
needs: [FastBuild]
32-
uses: ./.github/workflows/reusable_dax.yml
33-
MultiNuma:
34-
needs: [FastBuild]
35-
uses: ./.github/workflows/reusable_multi_numa.yml
3620
L0:
37-
needs: [Build]
3821
uses: ./.github/workflows/reusable_gpu.yml
3922
with:
4023
provider: "LEVEL_ZERO"
4124
runner: "L0"
4225
shared_lib: "['ON']"
4326
L0-BMG:
44-
needs: [Build]
4527
uses: ./.github/workflows/reusable_gpu.yml
4628
with:
4729
provider: "LEVEL_ZERO"
4830
runner: "L0-BMG"
4931
shared_lib: "['ON']"
50-
os: "['Ubuntu']"
32+
os: "['Ubuntu']" # Ubuntu only
5133
CUDA:
52-
needs: [Build]
5334
uses: ./.github/workflows/reusable_gpu.yml
5435
with:
5536
provider: "CUDA"
5637
runner: "CUDA"
5738
shared_lib: "['ON']"
58-
Sanitizers:
59-
needs: [FastBuild]
60-
uses: ./.github/workflows/reusable_sanitizers.yml
61-
QEMU:
62-
needs: [FastBuild]
63-
uses: ./.github/workflows/reusable_qemu.yml
64-
with:
65-
short_run: true
66-
ProxyLib:
67-
needs: [Build]
68-
uses: ./.github/workflows/reusable_proxy_lib.yml
69-
Valgrind:
70-
needs: [Build]
71-
uses: ./.github/workflows/reusable_valgrind.yml
7239
Coverage:
7340
# total coverage (on upstream only)
7441
if: github.repository == 'oneapi-src/unified-memory-framework'
75-
needs: [Build, DevDax, L0, CUDA, MultiNuma, QEMU, ProxyLib]
7642
uses: ./.github/workflows/reusable_coverage.yml
7743
secrets: inherit
7844
with:
7945
trigger: "${{github.event_name}}"
8046
Coverage_partial:
8147
# partial coverage (on forks)
8248
if: github.repository != 'oneapi-src/unified-memory-framework'
83-
needs: [Build, QEMU, ProxyLib]
8449
uses: ./.github/workflows/reusable_coverage.yml
85-
CodeQL:
86-
needs: [Build]
87-
permissions:
88-
contents: read
89-
security-events: write
90-
uses: ./.github/workflows/reusable_codeql.yml
91-
Trivy:
92-
needs: [Build]
93-
permissions:
94-
contents: read
95-
security-events: write
96-
uses: ./.github/workflows/reusable_trivy.yml
97-
Compatibility:
98-
# TODO: bring back when new UMF version is ready
99-
if: false
100-
needs: [Build]
101-
uses: ./.github/workflows/reusable_compatibility.yml
102-
strategy:
103-
matrix:
104-
tag: ["v1.0.0-rc1"]
105-
with:
106-
tag: ${{matrix.tag}}

.github/workflows/reusable_gpu.yml

Lines changed: 65 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,6 @@ on:
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

3228
env:
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

3735
jobs:
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'
@@ -46,8 +44,7 @@ jobs:
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:
@@ -72,7 +69,7 @@ jobs:
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

@@ -81,7 +78,7 @@ jobs:
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

Comments
 (0)