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