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.10.1"
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 "tag version: $VERSION"
58+
59+ - name : Configure "tag" UMF build
60+ working-directory : ${{github.workspace}}/tag_version
61+ run : >
62+ cmake
63+ -B ${{github.workspace}}/tag_version/build
64+ -DCMAKE_INSTALL_PREFIX="${{github.workspace}}/tag_version/build/install"
65+ -DCMAKE_BUILD_TYPE=${{matrix.build_type}}
66+ -DUMF_BUILD_SHARED_LIBRARY=${{matrix.shared_library}}
67+ -DCMAKE_C_COMPILER=${{matrix.compiler.c}}
68+ -DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
69+ -DUMF_BUILD_LEVEL_ZERO_PROVIDER=${{matrix.level_zero_provider}}
70+ -DUMF_BUILD_CUDA_PROVIDER=${{matrix.cuda_provider}}
71+ -DUMF_FORMAT_CODE_STYLE=OFF
72+ -DUMF_DEVELOPER_MODE=ON
73+ -DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
74+ -DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
75+ -DUMF_TESTS_FAIL_ON_SKIP=ON
76+
77+ - name : Build "tag" UMF
78+ working-directory : ${{github.workspace}}/tag_version
79+ run : |
80+ cmake --build ${{github.workspace}}/tag_version/build -j $(nproc)
81+
82+ # NOTE: we need jemalloc for older version of UMF
83+ # if: startsWith(github.event.inputs.tag, '0.10.') || startsWith(github.event.inputs.tag, '0.9.')
84+ - name : Set ptrace value for IPC test
85+ run : sudo bash -c "echo 0 > /proc/sys/kernel/yama/ptrace_scope"
86+
87+ - name : Run "tag" UMF tests
88+ working-directory : ${{github.workspace}}/tag_version/build
89+ run : |
90+ LD_LIBRARY_PATH=${{github.workspace}}/tag_version/build/lib/ ctest --output-on-failure
91+
92+ - name : Checkout latest UMF version
93+ uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
94+ with :
95+ fetch-depth : 0
96+ path : ${{github.workspace}}/latest_version
97+
98+ - name : Get latest UMF version
99+ working-directory : ${{github.workspace}}/latest_version
100+ run : |
101+ VERSION=$(git describe --tags --abbrev=0 | grep -oP '\d+\.\d+\.\d+')
102+ echo "checked version: $VERSION"
103+
104+ - name : Configure latest UMF build
105+ working-directory : ${{github.workspace}}/latest_version
106+ run : >
107+ cmake
108+ -B ${{github.workspace}}/latest_version/build
109+ -DCMAKE_INSTALL_PREFIX="${{github.workspace}}/latest_version/build/install"
110+ -DCMAKE_BUILD_TYPE=${{matrix.build_type}}
111+ -DUMF_BUILD_SHARED_LIBRARY=${{matrix.shared_library}}
112+ -DCMAKE_C_COMPILER=${{matrix.compiler.c}}
113+ -DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
114+ -DUMF_BUILD_LEVEL_ZERO_PROVIDER=${{matrix.level_zero_provider}}
115+ -DUMF_BUILD_CUDA_PROVIDER=${{matrix.cuda_provider}}
116+ -DUMF_FORMAT_CODE_STYLE=OFF
117+ -DUMF_DEVELOPER_MODE=ON
118+ -DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
119+ -DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
120+ -DUMF_TESTS_FAIL_ON_SKIP=ON
121+
122+ - name : Build latest UMF
123+ working-directory : ${{github.workspace}}/latest_version
124+ run : |
125+ cmake --build ${{github.workspace}}/latest_version/build -j $(nproc)
126+
127+ # NOTE: exclude umf-provider_coarse, umf-disjointCoarseMallocPool
128+ - name : Run "tag" UMF tests with latest UMF libs (warnigs enabled)
129+ working-directory : ${{github.workspace}}/tag_version/build
130+ run : >
131+ UMF_LOG="level:warning;flush:debug;output:stderr;pid:no"
132+ LD_LIBRARY_PATH=${{github.workspace}}/latest_version/build/lib/
133+ ctest --output-on-failure -E "umf-provider_coarse|umf-disjointCoarseMallocPool"
134+
0 commit comments