Use apt-get to install Clang on CI

This commit is contained in:
Siarhei Fedartsou 2022-08-29 23:10:53 +02:00
parent f82796bf5f
commit bc521ab84e

View File

@ -107,30 +107,30 @@ jobs:
strategy: strategy:
matrix: matrix:
include: include:
- name: gcc-9-debug-cov # - name: gcc-9-debug-cov
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Debug # BUILD_TYPE: Debug
CCOMPILER: gcc-9 # CCOMPILER: gcc-9
CUCUMBER_TIMEOUT: 20000 # CUCUMBER_TIMEOUT: 20000
CXXCOMPILER: g++-9 # CXXCOMPILER: g++-9
ENABLE_COVERAGE: ON # ENABLE_COVERAGE: ON
- name: gcc-9-debug-asan-ubsan # - name: gcc-9-debug-asan-ubsan
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Debug # BUILD_TYPE: Debug
CCOMPILER: gcc-9 # CCOMPILER: gcc-9
CUCUMBER_TIMEOUT: 20000 # CUCUMBER_TIMEOUT: 20000
CXXCOMPILER: g++-9 # CXXCOMPILER: g++-9
ENABLE_SANITIZER: ON # ENABLE_SANITIZER: ON
TARGET_ARCH: x86_64-asan-ubsan # TARGET_ARCH: x86_64-asan-ubsan
OSRM_CONNECTION_RETRIES: 10 # OSRM_CONNECTION_RETRIES: 10
OSRM_CONNECTION_EXP_BACKOFF_COEF: 1.5 # OSRM_CONNECTION_EXP_BACKOFF_COEF: 1.5
- name: clang-6.0-debug - name: clang-6.0-debug
continue-on-error: false continue-on-error: false
@ -138,7 +138,8 @@ jobs:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
BUILD_TOOLS: ON BUILD_TOOLS: ON
BUILD_TYPE: Debug BUILD_TYPE: Debug
CLANG_VERSION: 6 CCOMPILER: clang-6.0
CXXCOMPILER: clang++-6.0
CUCUMBER_TIMEOUT: 60000 CUCUMBER_TIMEOUT: 60000
- name: clang-11.0-debug-clang-tidy - name: clang-11.0-debug-clang-tidy
@ -147,272 +148,273 @@ jobs:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
BUILD_TOOLS: ON BUILD_TOOLS: ON
BUILD_TYPE: Debug BUILD_TYPE: Debug
CLANG_VERSION: 11 CCOMPILER: clang-11
CXXCOMPILER: clang++-11
CUCUMBER_TIMEOUT: 60000 CUCUMBER_TIMEOUT: 60000
ENABLE_CLANG_TIDY: ON ENABLE_CLANG_TIDY: ON
- name: conan-linux-debug-asan-ubsan # - name: conan-linux-debug-asan-ubsan
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Release # BUILD_TYPE: Release
CLANG_VERSION: 11 # CLANG_VERSION: 11
ENABLE_CONAN: ON # ENABLE_CONAN: ON
ENABLE_SANITIZER: ON # ENABLE_SANITIZER: ON
- name: conan-linux-release # - name: conan-linux-release
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Release # BUILD_TYPE: Release
CLANG_VERSION: 6 # CLANG_VERSION: 6
ENABLE_CONAN: ON # ENABLE_CONAN: ON
- name: gcc-11-release # - name: gcc-11-release
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: gcc-11 # CCOMPILER: gcc-11
CXXCOMPILER: g++-11 # CXXCOMPILER: g++-11
- name: gcc-10-release # - name: gcc-10-release
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: gcc-10 # CCOMPILER: gcc-10
CXXCOMPILER: g++-10 # CXXCOMPILER: g++-10
- name: gcc-9-release # - name: gcc-9-release
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: gcc-9 # CCOMPILER: gcc-9
CXXCOMPILER: g++-9 # CXXCOMPILER: g++-9
CXXFLAGS: -Wno-cast-function-type # CXXFLAGS: -Wno-cast-function-type
- name: gcc-9-conan-release-i686 # - name: gcc-9-conan-release-i686
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: gcc-9 # CCOMPILER: gcc-9
CFLAGS: "-m32 -msse2 -mfpmath=sse" # CFLAGS: "-m32 -msse2 -mfpmath=sse"
CXXCOMPILER: g++-9 # CXXCOMPILER: g++-9
CXXFLAGS: "-m32 -msse2 -mfpmath=sse" # CXXFLAGS: "-m32 -msse2 -mfpmath=sse"
TARGET_ARCH: i686 # TARGET_ARCH: i686
ENABLE_CONAN: ON # ENABLE_CONAN: ON
- name: gcc-8-release # - name: gcc-8-release
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: gcc-8 # CCOMPILER: gcc-8
CXXCOMPILER: g++-8 # CXXCOMPILER: g++-8
CXXFLAGS: -Wno-cast-function-type # CXXFLAGS: -Wno-cast-function-type
- name: gcc-7-release # - name: gcc-7-release
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: gcc-7 # CCOMPILER: gcc-7
CXXCOMPILER: g++-7 # CXXCOMPILER: g++-7
- name: conan-osx-release-node-12 # - name: conan-osx-release-node-12
build_node_package: true # build_node_package: true
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: macos-11 # runs-on: macos-11
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: clang # CCOMPILER: clang
CXXCOMPILER: clang++ # CXXCOMPILER: clang++
CUCUMBER_TIMEOUT: 60000 # CUCUMBER_TIMEOUT: 60000
ENABLE_ASSERTIONS: ON # ENABLE_ASSERTIONS: ON
ENABLE_CONAN: ON # ENABLE_CONAN: ON
- name: conan-osx-release-node-14 # - name: conan-osx-release-node-14
build_node_package: true # build_node_package: true
continue-on-error: false # continue-on-error: false
node: 14 # node: 14
runs-on: macos-11 # runs-on: macos-11
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: clang # CCOMPILER: clang
CXXCOMPILER: clang++ # CXXCOMPILER: clang++
CUCUMBER_TIMEOUT: 60000 # CUCUMBER_TIMEOUT: 60000
ENABLE_ASSERTIONS: ON # ENABLE_ASSERTIONS: ON
ENABLE_CONAN: ON # ENABLE_CONAN: ON
- name: conan-osx-release-node-16 # - name: conan-osx-release-node-16
build_node_package: true # build_node_package: true
continue-on-error: false # continue-on-error: false
node: 16 # node: 16
runs-on: macos-11 # runs-on: macos-11
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: clang # CCOMPILER: clang
CXXCOMPILER: clang++ # CXXCOMPILER: clang++
CUCUMBER_TIMEOUT: 60000 # CUCUMBER_TIMEOUT: 60000
ENABLE_ASSERTIONS: ON # ENABLE_ASSERTIONS: ON
ENABLE_CONAN: ON # ENABLE_CONAN: ON
- name: gcc-7-release-shared # - name: gcc-7-release-shared
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Release # BUILD_TYPE: Release
BUILD_SHARED_LIBS: ON # BUILD_SHARED_LIBS: ON
CCOMPILER: gcc-7 # CCOMPILER: gcc-7
CXXCOMPILER: g++-7 # CXXCOMPILER: g++-7
- name: node-12-conan-linux-release # - name: node-12-conan-linux-release
build_node_package: true # build_node_package: true
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TYPE: Release # BUILD_TYPE: Release
CLANG_VERSION: 6 # CLANG_VERSION: 6
ENABLE_GLIBC_WORKAROUND: ON # ENABLE_GLIBC_WORKAROUND: ON
ENABLE_CONAN: ON # ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON # NODE_PACKAGE_TESTS_ONLY: ON
- name: node-12-conan-linux-debug # - name: node-12-conan-linux-debug
build_node_package: true # build_node_package: true
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TYPE: Debug # BUILD_TYPE: Debug
CLANG_VERSION: 6 # CLANG_VERSION: 6
ENABLE_GLIBC_WORKAROUND: ON # ENABLE_GLIBC_WORKAROUND: ON
ENABLE_CONAN: ON # ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON # NODE_PACKAGE_TESTS_ONLY: ON
- name: node-14-conan-linux-release # - name: node-14-conan-linux-release
build_node_package: true # build_node_package: true
continue-on-error: false # continue-on-error: false
node: 14 # node: 14
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TYPE: Release # BUILD_TYPE: Release
CLANG_VERSION: 6 # CLANG_VERSION: 6
ENABLE_GLIBC_WORKAROUND: ON # ENABLE_GLIBC_WORKAROUND: ON
ENABLE_CONAN: ON # ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON # NODE_PACKAGE_TESTS_ONLY: ON
- name: node-14-conan-linux-debug # - name: node-14-conan-linux-debug
build_node_package: true # build_node_package: true
continue-on-error: false # continue-on-error: false
node: 14 # node: 14
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TYPE: Debug # BUILD_TYPE: Debug
CLANG_VERSION: 6 # CLANG_VERSION: 6
ENABLE_GLIBC_WORKAROUND: ON # ENABLE_GLIBC_WORKAROUND: ON
ENABLE_CONAN: ON # ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON # NODE_PACKAGE_TESTS_ONLY: ON
- name: node-16-conan-linux-release # - name: node-16-conan-linux-release
build_node_package: true # build_node_package: true
continue-on-error: false # continue-on-error: false
node: 16 # node: 16
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TYPE: Release # BUILD_TYPE: Release
CLANG_VERSION: 6 # CLANG_VERSION: 6
ENABLE_GLIBC_WORKAROUND: ON # ENABLE_GLIBC_WORKAROUND: ON
ENABLE_CONAN: ON # ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON # NODE_PACKAGE_TESTS_ONLY: ON
- name: node-16-conan-linux-debug # - name: node-16-conan-linux-debug
build_node_package: true # build_node_package: true
continue-on-error: false # continue-on-error: false
node: 16 # node: 16
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TYPE: Debug # BUILD_TYPE: Debug
CLANG_VERSION: 6 # CLANG_VERSION: 6
ENABLE_GLIBC_WORKAROUND: ON # ENABLE_GLIBC_WORKAROUND: ON
ENABLE_CONAN: ON # ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON # NODE_PACKAGE_TESTS_ONLY: ON
- name: conan-osx-release-node-latest # - name: conan-osx-release-node-latest
build_node_package: true # build_node_package: true
continue-on-error: true # continue-on-error: true
node: latest # node: latest
runs-on: macos-11 # runs-on: macos-11
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: clang # CCOMPILER: clang
CXXCOMPILER: clang++ # CXXCOMPILER: clang++
CUCUMBER_TIMEOUT: 60000 # CUCUMBER_TIMEOUT: 60000
ENABLE_ASSERTIONS: ON # ENABLE_ASSERTIONS: ON
ENABLE_CONAN: ON # ENABLE_CONAN: ON
- name: node-latest-conan-linux-release # - name: node-latest-conan-linux-release
build_node_package: true # build_node_package: true
continue-on-error: true # continue-on-error: true
node: latest # node: latest
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TYPE: Release # BUILD_TYPE: Release
CLANG_VERSION: 6 # CLANG_VERSION: 6
ENABLE_GLIBC_WORKAROUND: ON # ENABLE_GLIBC_WORKAROUND: ON
ENABLE_CONAN: ON # ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON # NODE_PACKAGE_TESTS_ONLY: ON
- name: node-latest-conan-linux-debug # - name: node-latest-conan-linux-debug
build_node_package: true # build_node_package: true
continue-on-error: true # continue-on-error: true
node: latest # node: latest
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TYPE: Debug # BUILD_TYPE: Debug
CLANG_VERSION: 6 # CLANG_VERSION: 6
ENABLE_GLIBC_WORKAROUND: ON # ENABLE_GLIBC_WORKAROUND: ON
ENABLE_CONAN: ON # ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON # NODE_PACKAGE_TESTS_ONLY: ON
- name: conan-osx-release-node-lts # - name: conan-osx-release-node-lts
build_node_package: true # build_node_package: true
continue-on-error: true # continue-on-error: true
node: "lts/*" # node: "lts/*"
runs-on: macos-11 # runs-on: macos-11
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: clang # CCOMPILER: clang
CXXCOMPILER: clang++ # CXXCOMPILER: clang++
CUCUMBER_TIMEOUT: 60000 # CUCUMBER_TIMEOUT: 60000
ENABLE_ASSERTIONS: ON # ENABLE_ASSERTIONS: ON
ENABLE_CONAN: ON # ENABLE_CONAN: ON
- name: node-lts-conan-linux-release # - name: node-lts-conan-linux-release
build_node_package: true # build_node_package: true
continue-on-error: true # continue-on-error: true
node: "lts/*" # node: "lts/*"
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TYPE: Release # BUILD_TYPE: Release
CLANG_VERSION: 6 # CLANG_VERSION: 6
ENABLE_GLIBC_WORKAROUND: ON # ENABLE_GLIBC_WORKAROUND: ON
ENABLE_CONAN: ON # ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON # NODE_PACKAGE_TESTS_ONLY: ON
- name: node-lts-conan-linux-debug # - name: node-lts-conan-linux-debug
build_node_package: true # build_node_package: true
continue-on-error: true # continue-on-error: true
node: "lts/*" # node: "lts/*"
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TYPE: Debug # BUILD_TYPE: Debug
CLANG_VERSION: 6 # CLANG_VERSION: 6
ENABLE_GLIBC_WORKAROUND: ON # ENABLE_GLIBC_WORKAROUND: ON
ENABLE_CONAN: ON # ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON # NODE_PACKAGE_TESTS_ONLY: ON
name: ${{ matrix.name}} name: ${{ matrix.name}}
continue-on-error: ${{ matrix.continue-on-error }} continue-on-error: ${{ matrix.continue-on-error }}
@ -515,25 +517,15 @@ jobs:
echo "$(${MASON} prefix ccache ${CCACHE_VERSION})/bin" >> $GITHUB_PATH echo "$(${MASON} prefix ccache ${CCACHE_VERSION})/bin" >> $GITHUB_PATH
# clang # clang
if [[ -n ${CLANG_VERSION} ]]; then sudo apt-get update -y && sudo apt-get install "clang++-6"
echo "CCOMPILER=clang" >> $GITHUB_ENV # we only enable lto for release builds
echo "CXXCOMPILER=clang++" >> $GITHUB_ENV # and therefore don't need to us ld.gold or llvm tools for linking
sudo apt-get update -y && sudo apt-get install "clang++-${CLANG_VERSION}" # for debug builds
if [[ "${CLANG_VERSION}" = "6" ]]; then if [[ ${BUILD_TYPE} == 'Release' ]]; then
sudo update-alternatives --install /usr/bin/clang++ clang++ "/usr/bin/clang++-${CLANG_VERSION}.0" 10000000 ${MASON} install binutils 2.27
sudo update-alternatives --install /usr/bin/clang clang "/usr/bin/clang-${CLANG_VERSION}.0" 10000000 echo "$(${MASON} prefix binutils 2.27)/bin" >> $GITHUB_PATH
else
sudo update-alternatives --install /usr/bin/clang++ clang++ "/usr/bin/clang++-${CLANG_VERSION}" 10000000
sudo update-alternatives --install /usr/bin/clang clang "/usr/bin/clang-${CLANG_VERSION}" 10000000
fi
# we only enable lto for release builds
# and therefore don't need to us ld.gold or llvm tools for linking
# for debug builds
if [[ ${BUILD_TYPE} == 'Release' ]]; then
${MASON} install binutils 2.27
echo "$(${MASON} prefix binutils 2.27)/bin" >> $GITHUB_PATH
fi
fi fi
# Linux dev packages # Linux dev packages
if [ "${TARGET_ARCH}" != "i686" ] && [ "${ENABLE_CONAN}" != "ON" ]; then if [ "${TARGET_ARCH}" != "i686" ] && [ "${ENABLE_CONAN}" != "ON" ]; then
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y