18
18
name : Ubuntu
19
19
runs-on : ubuntu-latest
20
20
container :
21
- # image: ghcr.io/bb-ur/umf-ubuntu-${{ matrix.ubuntu_ver }}:latest
22
- image : ghcr.io/rbanka1/umf-ubuntu-${{ matrix.ubuntu_ver }}:latest # test
21
+ image : ghcr.io/bb-ur/umf-ubuntu-${{ matrix.ubuntu_ver }}:latest
23
22
options : --user root --privileged
24
23
volumes :
25
24
- ${{ github.workspace }}:${{ github.workspace }}
45
44
install_tbb : ' ON'
46
45
disable_hwloc : ' OFF'
47
46
link_hwloc_statically : ' OFF'
47
+ # check minimum supported cmake version
48
+ cmake_ver : ' 3.14.0'
48
49
- ubuntu_ver : 22.04
49
50
build_type : Release
50
51
compiler : {c: gcc, cxx: g++}
54
55
install_tbb : ' ON'
55
56
disable_hwloc : ' OFF'
56
57
link_hwloc_statically : ' OFF'
58
+ cmake_ver : ' 3.28.0'
57
59
- ubuntu_ver : 24.04
58
60
build_type : Debug
59
61
compiler : {c: gcc, cxx: g++}
97
99
disable_hwloc : ' OFF'
98
100
link_hwloc_statically : ' OFF'
99
101
llvm_linker : ' -DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=lld" -DCMAKE_MODULE_LINKER_FLAGS="-fuse-ld=lld" -DCMAKE_SHARED_LINKER_FLAGS="-fuse-ld=lld"'
102
+ cmake_ver : ' default'
100
103
# test without installing TBB
101
104
- ubuntu_ver : 22.04
102
105
build_type : Release
@@ -107,6 +110,7 @@ jobs:
107
110
install_tbb : ' OFF'
108
111
disable_hwloc : ' OFF'
109
112
link_hwloc_statically : ' OFF'
113
+ cmake_ver : ' default'
110
114
- ubuntu_ver : 22.04
111
115
build_type : Debug
112
116
compiler : {c: gcc, cxx: g++}
@@ -116,6 +120,7 @@ jobs:
116
120
install_tbb : ' ON'
117
121
disable_hwloc : ' ON'
118
122
link_hwloc_statically : ' OFF'
123
+ cmake_ver : ' default'
119
124
- ubuntu_ver : 22.04
120
125
build_type : Release
121
126
compiler : {c: gcc, cxx: g++}
@@ -125,21 +130,41 @@ jobs:
125
130
install_tbb : ' ON'
126
131
disable_hwloc : ' OFF'
127
132
link_hwloc_statically : ' ON'
133
+ cmake_ver : ' default'
128
134
steps :
129
135
- name : Checkout
130
136
uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
131
137
with :
132
138
fetch-depth : 0
133
139
140
+ - name : Install cmake (non-default version)
141
+ if : matrix.cmake_ver != 'default'
142
+ run : |
143
+ apt-get remove --purge -y cmake
144
+ wget https://github.com/Kitware/CMake/releases/download/v${{matrix.cmake_ver}}/cmake-${{matrix.cmake_ver}}-Linux-x86_64.sh
145
+ chmod +x cmake-${{matrix.cmake_ver}}-Linux-x86_64.sh
146
+ ./cmake-${{matrix.cmake_ver}}-Linux-x86_64.sh --skip-license --prefix=/usr/local
147
+
148
+ - name : Uninstall TBB apt package
149
+ if : matrix.install_tbb == 'OFF'
150
+ run : |
151
+ apt-get remove --purge -y libtbb-dev
152
+
134
153
- name : Install oneAPI basekit
135
154
if : matrix.compiler.cxx == 'icpx'
136
155
run : |
137
- sudo apt-get update
138
- sudo apt-get install -y gpg-agent wget
139
- wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
140
- echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
141
- sudo apt-get update
142
- sudo apt-get install -y intel-oneapi-ippcp-devel intel-oneapi-ipp-devel intel-oneapi-common-oneapi-vars intel-oneapi-compiler-dpcpp-cpp
156
+ apt-get update
157
+ apt-get install -y gpg-agent
158
+ wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor -o /usr/share/keyrings/oneapi-archive-keyring.gpg
159
+ echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" > /etc/apt/sources.list.d/oneAPI.list
160
+ apt-get update
161
+ apt-get install -y intel-oneapi-ippcp-devel intel-oneapi-ipp-devel intel-oneapi-common-oneapi-vars intel-oneapi-compiler-dpcpp-cpp
162
+
163
+ - name : Get UMF version
164
+ run : |
165
+ git config --global --add safe.directory $GITHUB_WORKSPACE
166
+ VERSION=$(git describe --tags --abbrev=0 | grep -oP '\d+\.\d+\.\d+')
167
+ echo "UMF_VERSION=$VERSION" >> $GITHUB_ENV
143
168
144
169
- name : Configure build
145
170
run : >
@@ -160,6 +185,7 @@ jobs:
160
185
-DUMF_DISABLE_HWLOC=${{matrix.disable_hwloc}}
161
186
-DUMF_LINK_HWLOC_STATICALLY=${{matrix.link_hwloc_statically}}
162
187
${{ matrix.build_type == 'Debug' && matrix.compiler.c == 'gcc' && '-DUMF_USE_COVERAGE=ON' || '' }}
188
+ ${{ matrix.llvm_linker || '' }}
163
189
164
190
- name : Build UMF
165
191
run : |
@@ -172,14 +198,11 @@ jobs:
172
198
${{ matrix.compiler.cxx == 'icpx' && '. /opt/intel/oneapi/setvars.sh' || true }}
173
199
LD_LIBRARY_PATH="${{env.BUILD_DIR}}/lib/:${LD_LIBRARY_PATH}" ctest --output-on-failure
174
200
175
- - name : Set OS name
176
- run : echo "OS_VER=ubuntu-${{ matrix.ubuntu_ver }}" >> $GITHUB_ENV
177
-
178
201
- name : Check coverage
179
202
if : ${{ matrix.build_type == 'Debug' && matrix.compiler.c == 'gcc' }}
180
203
working-directory : ${{env.BUILD_DIR}}
181
204
run : |
182
- export COVERAGE_FILE_NAME=${{env.COVERAGE_NAME}}-${{env.OS_VER }}-shared-${{matrix.shared_library}}-no_hwloc-${{matrix.disable_hwloc}}
205
+ export COVERAGE_FILE_NAME=${{env.COVERAGE_NAME}}-ubuntu- ${{matrix.ubuntu_ver }}-shared-${{matrix.shared_library}}-no_hwloc-${{matrix.disable_hwloc}}
183
206
echo "COVERAGE_FILE_NAME: $COVERAGE_FILE_NAME"
184
207
../scripts/coverage/coverage_capture.sh $COVERAGE_FILE_NAME
185
208
mkdir -p ${{env.COVERAGE_DIR}}
@@ -188,7 +211,7 @@ jobs:
188
211
- uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
189
212
if : ${{ matrix.build_type == 'Debug' && matrix.compiler.c == 'gcc' }}
190
213
with :
191
- name : ${{env.COVERAGE_NAME}}-${{env.OS_VER }}-shared-${{matrix.shared_library}}-no_hwloc-${{matrix.disable_hwloc}}
214
+ name : ${{env.COVERAGE_NAME}}-${{matrix.ubuntu_ver }}-shared-${{matrix.shared_library}}-no_hwloc-${{matrix.disable_hwloc}}
192
215
path : ${{env.COVERAGE_DIR}}
193
216
194
217
- name : Remove the installation directory
0 commit comments