1818 name : Ubuntu
1919 runs-on : ubuntu-latest
2020 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
2322 options : --user root --privileged
2423 volumes :
2524 - ${{ github.workspace }}:${{ github.workspace }}
4544 install_tbb : ' ON'
4645 disable_hwloc : ' OFF'
4746 link_hwloc_statically : ' OFF'
47+ # check minimum supported cmake version
48+ cmake_ver : ' 3.14.0'
4849 - ubuntu_ver : 22.04
4950 build_type : Release
5051 compiler : {c: gcc, cxx: g++}
5455 install_tbb : ' ON'
5556 disable_hwloc : ' OFF'
5657 link_hwloc_statically : ' OFF'
58+ cmake_ver : ' 3.28.0'
5759 - ubuntu_ver : 24.04
5860 build_type : Debug
5961 compiler : {c: gcc, cxx: g++}
9799 disable_hwloc : ' OFF'
98100 link_hwloc_statically : ' OFF'
99101 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'
100103 # test without installing TBB
101104 - ubuntu_ver : 22.04
102105 build_type : Release
@@ -107,6 +110,7 @@ jobs:
107110 install_tbb : ' OFF'
108111 disable_hwloc : ' OFF'
109112 link_hwloc_statically : ' OFF'
113+ cmake_ver : ' default'
110114 - ubuntu_ver : 22.04
111115 build_type : Debug
112116 compiler : {c: gcc, cxx: g++}
@@ -116,6 +120,7 @@ jobs:
116120 install_tbb : ' ON'
117121 disable_hwloc : ' ON'
118122 link_hwloc_statically : ' OFF'
123+ cmake_ver : ' default'
119124 - ubuntu_ver : 22.04
120125 build_type : Release
121126 compiler : {c: gcc, cxx: g++}
@@ -125,21 +130,41 @@ jobs:
125130 install_tbb : ' ON'
126131 disable_hwloc : ' OFF'
127132 link_hwloc_statically : ' ON'
133+ cmake_ver : ' default'
128134 steps :
129135 - name : Checkout
130136 uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
131137 with :
132138 fetch-depth : 0
133139
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+
134153 - name : Install oneAPI basekit
135154 if : matrix.compiler.cxx == 'icpx'
136155 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
143168
144169 - name : Configure build
145170 run : >
@@ -160,6 +185,7 @@ jobs:
160185 -DUMF_DISABLE_HWLOC=${{matrix.disable_hwloc}}
161186 -DUMF_LINK_HWLOC_STATICALLY=${{matrix.link_hwloc_statically}}
162187 ${{ matrix.build_type == 'Debug' && matrix.compiler.c == 'gcc' && '-DUMF_USE_COVERAGE=ON' || '' }}
188+ ${{ matrix.llvm_linker || '' }}
163189
164190 - name : Build UMF
165191 run : |
@@ -172,14 +198,11 @@ jobs:
172198 ${{ matrix.compiler.cxx == 'icpx' && '. /opt/intel/oneapi/setvars.sh' || true }}
173199 LD_LIBRARY_PATH="${{env.BUILD_DIR}}/lib/:${LD_LIBRARY_PATH}" ctest --output-on-failure
174200
175- - name : Set OS name
176- run : echo "OS_VER=ubuntu-${{ matrix.ubuntu_ver }}" >> $GITHUB_ENV
177-
178201 - name : Check coverage
179202 if : ${{ matrix.build_type == 'Debug' && matrix.compiler.c == 'gcc' }}
180203 working-directory : ${{env.BUILD_DIR}}
181204 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}}
183206 echo "COVERAGE_FILE_NAME: $COVERAGE_FILE_NAME"
184207 ../scripts/coverage/coverage_capture.sh $COVERAGE_FILE_NAME
185208 mkdir -p ${{env.COVERAGE_DIR}}
@@ -188,7 +211,7 @@ jobs:
188211 - uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
189212 if : ${{ matrix.build_type == 'Debug' && matrix.compiler.c == 'gcc' }}
190213 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}}
192215 path : ${{env.COVERAGE_DIR}}
193216
194217 - name : Remove the installation directory
0 commit comments