Skip to content

Commit 9a3f13f

Browse files
committed
compat
1 parent e31c856 commit 9a3f13f

File tree

2 files changed

+140
-71
lines changed

2 files changed

+140
-71
lines changed

.github/workflows/pr_push.yml

Lines changed: 7 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -16,75 +16,11 @@ permissions:
1616
contents: read
1717

1818
jobs:
19-
CodeChecks:
20-
uses: ./.github/workflows/reusable_checks.yml
21-
DocsBuild:
22-
uses: ./.github/workflows/reusable_docs_build.yml
23-
FastBuild:
24-
name: Fast builds
25-
needs: [CodeChecks, DocsBuild]
26-
uses: ./.github/workflows/reusable_fast.yml
27-
Build:
28-
name: Basic builds
29-
needs: [FastBuild]
30-
uses: ./.github/workflows/reusable_basic.yml
31-
DevDax:
32-
needs: [FastBuild]
33-
uses: ./.github/workflows/reusable_dax.yml
34-
MultiNuma:
35-
needs: [FastBuild]
36-
uses: ./.github/workflows/reusable_multi_numa.yml
37-
L0:
38-
needs: [Build]
39-
uses: ./.github/workflows/reusable_gpu.yml
19+
Compatibility:
20+
name: Compatibility
21+
uses: ./.github/workflows/reusable_compatibility.yml
22+
strategy:
23+
matrix:
24+
tag: ["v0.10.0", "v0.10.1"]
4025
with:
41-
name: "LEVEL_ZERO"
42-
shared_lib: "['ON']"
43-
CUDA:
44-
needs: [Build]
45-
uses: ./.github/workflows/reusable_gpu.yml
46-
with:
47-
name: "CUDA"
48-
shared_lib: "['ON']"
49-
Sanitizers:
50-
needs: [FastBuild]
51-
uses: ./.github/workflows/reusable_sanitizers.yml
52-
QEMU:
53-
needs: [FastBuild]
54-
uses: ./.github/workflows/reusable_qemu.yml
55-
with:
56-
short_run: true
57-
Benchmarks:
58-
needs: [Build]
59-
uses: ./.github/workflows/reusable_benchmarks.yml
60-
ProxyLib:
61-
needs: [Build]
62-
uses: ./.github/workflows/reusable_proxy_lib.yml
63-
Valgrind:
64-
needs: [Build]
65-
uses: ./.github/workflows/reusable_valgrind.yml
66-
Coverage:
67-
# total coverage (on upstream only)
68-
if: github.repository == 'oneapi-src/unified-memory-framework'
69-
needs: [Build, DevDax, L0, CUDA, MultiNuma, QEMU, ProxyLib]
70-
uses: ./.github/workflows/reusable_coverage.yml
71-
secrets: inherit
72-
with:
73-
trigger: "${{github.event_name}}"
74-
Coverage_partial:
75-
# partial coverage (on forks)
76-
if: github.repository != 'oneapi-src/unified-memory-framework'
77-
needs: [Build, QEMU, ProxyLib]
78-
uses: ./.github/workflows/reusable_coverage.yml
79-
CodeQL:
80-
needs: [Build]
81-
permissions:
82-
contents: read
83-
security-events: write
84-
uses: ./.github/workflows/reusable_codeql.yml
85-
Trivy:
86-
needs: [Build]
87-
permissions:
88-
contents: read
89-
security-events: write
90-
uses: ./.github/workflows/reusable_trivy.yml
26+
tag: ${{ matrix.tag }}
Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
# TODO
2+
name: Compatibility
3+
4+
on:
5+
workflow_call:
6+
inputs:
7+
tag:
8+
description: Check backward compatibility with this tag
9+
type: string
10+
default: "0.9.0"
11+
12+
permissions:
13+
contents: read
14+
15+
jobs:
16+
ubuntu-build:
17+
name: Ubuntu
18+
strategy:
19+
matrix:
20+
# TODO other systems?
21+
os: ['ubuntu-22.04']
22+
build_type: [Debug]
23+
compiler: [{c: gcc, cxx: g++}]
24+
shared_library: ['ON']
25+
level_zero_provider: ['ON']
26+
cuda_provider: ['ON']
27+
install_tbb: ['ON']
28+
runs-on: ${{matrix.os}}
29+
30+
steps:
31+
# NOTE: we need jemalloc for older version of UMF
32+
- name: Install apt packages
33+
run: |
34+
sudo apt-get update
35+
sudo apt-get install -y clang cmake libnuma-dev libjemalloc-dev
36+
37+
- name: Install TBB apt package
38+
if: matrix.install_tbb == 'ON'
39+
run: |
40+
sudo apt-get install -y libtbb-dev
41+
42+
- name: Checkout "tag" UMF version
43+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
44+
with:
45+
fetch-depth: 0
46+
ref: refs/tags/${{inputs.tag}}
47+
path: ${{github.workspace}}/tag_version
48+
49+
- name: Install libhwloc
50+
working-directory: ${{github.workspace}}/tag_version
51+
run: .github/scripts/install_hwloc.sh
52+
53+
- name: Get "tag" UMF version
54+
working-directory: ${{github.workspace}}/tag_version
55+
run: |
56+
VERSION=$(git describe --tags --abbrev=0 | grep -oP '\d+\.\d+\.\d+')
57+
echo "UMF_VERSION=$VERSION" >> $GITHUB_ENV
58+
echo $VERSION
59+
60+
- name: Configure "tag" UMF build
61+
working-directory: ${{github.workspace}}/tag_version
62+
run: >
63+
cmake
64+
-B ${{github.workspace}}/tag_version/build
65+
-DCMAKE_INSTALL_PREFIX="${{github.workspace}}/tag_version/build/install"
66+
-DCMAKE_BUILD_TYPE=${{matrix.build_type}}
67+
-DUMF_BUILD_SHARED_LIBRARY=${{matrix.shared_library}}
68+
-DCMAKE_C_COMPILER=${{matrix.compiler.c}}
69+
-DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
70+
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=${{matrix.level_zero_provider}}
71+
-DUMF_BUILD_CUDA_PROVIDER=${{matrix.cuda_provider}}
72+
-DUMF_FORMAT_CODE_STYLE=OFF
73+
-DUMF_DEVELOPER_MODE=ON
74+
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
75+
-DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
76+
-DUMF_TESTS_FAIL_ON_SKIP=ON
77+
78+
- name: Build "tag" UMF
79+
working-directory: ${{github.workspace}}/tag_version
80+
run: |
81+
cmake --build ${{github.workspace}}/tag_version/build -j $(nproc)
82+
83+
# NOTE: we need jemalloc for older version of UMF
84+
# if: startsWith(github.event.inputs.tag, '0.10.') || startsWith(github.event.inputs.tag, '0.9.')
85+
- name: Set ptrace value for IPC test
86+
run: sudo bash -c "echo 0 > /proc/sys/kernel/yama/ptrace_scope"
87+
88+
- name: Run "tag" UMF tests
89+
working-directory: ${{github.workspace}}/tag_version/build
90+
run: |
91+
LD_LIBRARY_PATH=${{github.workspace}}/tag_version/build/lib/ ctest --output-on-failure
92+
93+
- name: Checkout latest UMF version
94+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
95+
with:
96+
fetch-depth: 0
97+
path: ${{github.workspace}}/latest_version
98+
99+
- name: Get latest UMF version
100+
working-directory: ${{github.workspace}}/latest_version
101+
run: |
102+
VERSION=$(git describe --tags --abbrev=0 | grep -oP '\d+\.\d+\.\d+')
103+
echo "UMF_VERSION=$VERSION" >> $GITHUB_ENV
104+
echo $VERSION
105+
106+
- name: Configure latest UMF build
107+
working-directory: ${{github.workspace}}/latest_version
108+
run: >
109+
cmake
110+
-B ${{github.workspace}}/latest_version/build
111+
-DCMAKE_INSTALL_PREFIX="${{github.workspace}}/latest_version/build/install"
112+
-DCMAKE_BUILD_TYPE=${{matrix.build_type}}
113+
-DUMF_BUILD_SHARED_LIBRARY=${{matrix.shared_library}}
114+
-DCMAKE_C_COMPILER=${{matrix.compiler.c}}
115+
-DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
116+
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=${{matrix.level_zero_provider}}
117+
-DUMF_BUILD_CUDA_PROVIDER=${{matrix.cuda_provider}}
118+
-DUMF_FORMAT_CODE_STYLE=OFF
119+
-DUMF_DEVELOPER_MODE=ON
120+
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
121+
-DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
122+
-DUMF_TESTS_FAIL_ON_SKIP=ON
123+
124+
- name: Build latest UMF
125+
working-directory: ${{github.workspace}}/latest_version
126+
run: |
127+
cmake --build ${{github.workspace}}/latest_version/build -j $(nproc)
128+
129+
- name: Run "tag" UMF tests with latest UMF libs
130+
working-directory: ${{github.workspace}}/tag_version/build
131+
run: |
132+
LD_LIBRARY_PATH=${{github.workspace}}/latest_version/build/lib/ ctest --output-on-failure
133+

0 commit comments

Comments
 (0)