Browse Source

package/ci: use Ubuntu 18.04 on CircleCI.

ktx1-detection
Vladimír Vondruš 4 years ago
parent
commit
33385a7670
  1. 64
      package/ci/circleci.yml

64
package/ci/circleci.yml

@ -4,12 +4,9 @@ orbs:
codecov: codecov/codecov@1.1.1
executors:
ubuntu-16_04:
docker:
- image: ubuntu:xenial-20201014
ubuntu-18_04:
docker:
- image: ubuntu:bionic-20200921
- image: ubuntu:bionic-20220427
xcode-11_5:
# Molten-vk isn't in (non-updated) Homebrew on the 9.4 or 10.0/1/2 image,
# have to use 10.3 instead; since 2021-06-08 it refuses to work on 10.14 so
@ -60,7 +57,8 @@ commands:
command: |
apt update
if [[ "$CMAKE_CXX_FLAGS" == *"--coverage"* ]]; then export LCOV_PACKAGES="lcov curl"; fi
apt install -y git ninja-build $LCOV_PACKAGES << parameters.extra >>
# libidn11 needed by CMake
apt install -y git ninja-build libidn11 $LCOV_PACKAGES << parameters.extra >>
install-base-linux-arm64:
parameters:
@ -137,45 +135,34 @@ commands:
echo 'export CC=gcc-4.8' >> $BASH_ENV
echo 'export CXX=g++-4.8' >> $BASH_ENV
install-clang-3_8:
# While we want to make sure the project builds on GCC 4.8 as certain
# embedded toolchains still use it, for Clang we just pick the version
# available in the oldest supported distro.
install-clang:
steps:
- run:
name: Install Clang 3.8
# https://askubuntu.com/questions/787383/how-to-install-llvm-3-9
# because the `deb` commands from https://apt.llvm.org don't work
#
# The software-properties-common need to be installed in order to have
# apt-add-repository. Sigh, adding a repository should be a core
# feature ffs!
#
# The apt-transport-https needs to be installed because
# E: The method driver /usr/lib/apt/methods/https could not be found.
# N: Is the package apt-transport-https installed?
#
# For some reason, CMake needs a working C compiler, so provice CC as
# well for the case when default gcc isn't installed.
#
# The llvm-symbolizer link needs to be set in order to have usable
# symbols in the output. This affects suppressions as well, meaning
# they won't work if the symbols are not resolvable. It's not enough to
# just `export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer-3.8`
# just `export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer-6.0`
# because it then complains that
#
# External symbolizer path is set to '/usr/bin/llvm-symbolizer-3.8'
# External symbolizer path is set to '/usr/bin/llvm-symbolizer-6.0'
# which isn't a known symbolizer. Please set the path to the
# llvm-symbolizer binary or other known tool.
#
# Probably because because it detects tool type based on the filename?
# Ugh.
name: Install Clang
command: |
apt install -y software-properties-common apt-transport-https wget
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
apt-add-repository "deb https://apt.llvm.org/xenial/ llvm-toolchain-xenial-3.9 main"
apt update
apt install -y clang-3.8
echo 'export CC=clang-3.8' >> $BASH_ENV
echo 'export CXX=clang++-3.8' >> $BASH_ENV
ln -s /usr/bin/llvm-symbolizer{-3.8,}
apt install -y clang
echo 'export CC=clang' >> $BASH_ENV
echo 'export CXX=clang++' >> $BASH_ENV
ls -l /usr/bin/llvm-symbolizer-6.0
ln -s /usr/bin/llvm-symbolizer{-6.0,}
install-cmake:
parameters:
@ -280,7 +267,7 @@ commands:
jobs:
linux-gl:
executor: ubuntu-16_04
executor: ubuntu-18_04
environment:
CMAKE_CXX_FLAGS: --coverage
LCOV_EXTRA_OPTS: --gcov-tool /usr/bin/gcov-4.8
@ -317,9 +304,6 @@ jobs:
script: unix-desktop.sh
- lcov
# vulkan-loader is broken on 16.04 and swiftshader vulkan needs GCC 7 to
# compile, so using 18.04 for Vulkan tests instead. Compile tests with GCC
# 4.8 are still done on 16.04
linux-vulkan:
executor: ubuntu-18_04
environment:
@ -340,7 +324,7 @@ jobs:
- lcov
linux-gles2:
executor: ubuntu-16_04
executor: ubuntu-18_04
environment:
CMAKE_CXX_FLAGS: --coverage
LCOV_EXTRA_OPTS: --gcov-tool /usr/bin/gcov-4.8
@ -365,7 +349,7 @@ jobs:
- lcov
linux-gles3:
executor: ubuntu-16_04
executor: ubuntu-18_04
environment:
CMAKE_CXX_FLAGS: --coverage
LCOV_EXTRA_OPTS: --gcov-tool /usr/bin/gcov-4.8
@ -390,7 +374,7 @@ jobs:
- lcov
linux-static:
executor: ubuntu-16_04
executor: ubuntu-18_04
environment:
# STUPID yml interprets unquoted ON as a boolean
# https://stackoverflow.com/questions/53648244/specifying-the-string-value-yes-in-a-yaml-property
@ -415,7 +399,7 @@ jobs:
- lcov
linux-nondeprecated:
executor: ubuntu-16_04
executor: ubuntu-18_04
environment:
# STUPID yml interprets unquoted OFF as a boolean
BUILD_DEPRECATED: "OFF"
@ -437,7 +421,7 @@ jobs:
script: unix-desktop.sh
linux-sanitizers:
executor: ubuntu-16_04
executor: ubuntu-18_04
environment:
# STUPID yml interprets unquoted OFF as a boolean. Applications don't
# have any automated tests, so building them for sanitizers doesn't make
@ -449,7 +433,7 @@ jobs:
steps:
- install-base-linux:
extra: libgl1-mesa-dev libopenal-dev libvulkan-dev
- install-clang-3_8
- install-clang
- install-cmake:
version: "3.4.3"
- setup-null-openal-driver
@ -457,7 +441,7 @@ jobs:
script: unix-desktop.sh
linux-threadsanitizer:
executor: ubuntu-16_04
executor: ubuntu-18_04
environment:
# STUPID yml interprets unquoted OFF as a boolean. Applications don't
# have any automated tests, so building them for sanitizers doesn't make
@ -469,7 +453,7 @@ jobs:
steps:
- install-base-linux:
extra: libgl1-mesa-dev libopenal-dev libvulkan-dev
- install-clang-3_8
- install-clang
- install-cmake:
version: "3.4.3"
- setup-null-openal-driver

Loading…
Cancel
Save