Update CircleCI machine to 20.04

This commit is contained in:
Sebastian Messmer 2021-04-03 17:45:01 -07:00
parent aff221e61b
commit 148c6d298b
3 changed files with 16 additions and 154 deletions

View File

@ -3,12 +3,12 @@ version: 2.0
references: references:
container_config: &container_config container_config: &container_config
machine: machine:
image: ubuntu-1604:201903-01 image: ubuntu-2004:202010-01
cache_init: &cache_init cache_init: &cache_init
run: run:
name: Initialize Cache name: Initialize Cache
command: | command: |
echo "${APT_COMPILER_PACKAGE}_${BUILD_TOOLSET}_${CXX}_${CC}_${BUILD_TYPE}_${CMAKE_FLAGS}_${CXXFLAGS}" > /tmp/_build_env_vars echo "Ubuntu20.04_${APT_COMPILER_PACKAGE}_${BUILD_TOOLSET}_${CXX}_${CC}_${BUILD_TYPE}_${CMAKE_FLAGS}_${CXXFLAGS}" > /tmp/_build_env_vars
echo Build env vars used for cache keys: echo Build env vars used for cache keys:
cat /tmp/_build_env_vars cat /tmp/_build_env_vars
container_setup_pre: &container_setup_pre container_setup_pre: &container_setup_pre
@ -34,47 +34,21 @@ references:
echo No apt cache found echo No apt cache found
fi fi
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test # sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add - # wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
sudo touch /etc/apt/sources.list.d/clang.list # sudo touch /etc/apt/sources.list.d/clang.list
sudo chmod o+w /etc/apt/sources.list.d/clang.list # sudo chmod o+w /etc/apt/sources.list.d/clang.list
cat > /etc/apt/sources.list.d/clang.list << EOF # cat > /etc/apt/sources.list.d/clang.list << EOF
deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-4.0 main # deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main
deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial-4.0 main #deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main
deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-5.0 main # EOF
deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial-5.0 main # sudo chmod o-w /etc/apt/sources.list.d/clang.list
deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-6.0 main
deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial-6.0 main
deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main
deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main
deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-8 main
deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial-8 main
deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-9 main
deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial-9 main
deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main
deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main
EOF
sudo chmod o-w /etc/apt/sources.list.d/clang.list
DEBIAN_FRONTEND=noninteractive sudo apt-get update -qq DEBIAN_FRONTEND=noninteractive sudo apt-get update -qq
DEBIAN_FRONTEND=noninteractive sudo apt-get install -y git ccache $APT_COMPILER_PACKAGE make libcurl4-openssl-dev libssl-dev libfuse-dev DEBIAN_FRONTEND=noninteractive sudo apt-get install -y git ccache $APT_COMPILER_PACKAGE make libcurl4-openssl-dev libssl-dev libfuse-dev
# install cmake
wget -O /tmp/cmake.sh https://github.com/Kitware/CMake/releases/download/v3.10.2/cmake-3.10.2-Linux-x86_64.sh
if [ $(sha256sum /tmp/cmake.sh | awk '{print $1;}') == "9348039642fc0213f4dd4235e513adc8ffbe6424ee98f349db17ca2a523a5d1b" ]; then
echo Correct sha256sum
else
echo Wrong sha256sum
sha256sum /tmp/cmake.sh
exit 1
fi
sudo mkdir /opt/cmake
sudo sh /tmp/cmake.sh --prefix=/opt/cmake --skip-license
sudo ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake
cmake --version
# install conan # install conan
pyenv global 3.7.0 pyenv global 3.8.5
python3 -m pip install -U pip python3 -m pip install -U pip
python3 -m pip install conan python3 -m pip install conan
source ~/.profile source ~/.profile
@ -269,30 +243,6 @@ references:
only: /.*/ only: /.*/
jobs: jobs:
gcc_6_debug:
<<: *job_definition
environment:
CC: gcc-6
CXX: g++-6
BUILD_TOOLSET: gcc
APT_COMPILER_PACKAGE: "g++-6"
CXXFLAGS: ""
BUILD_TYPE: "Debug"
GTEST_ARGS: ""
CMAKE_FLAGS: ""
RUN_TESTS: true
gcc_6_release:
<<: *job_definition
environment:
CC: gcc-6
CXX: g++-6
BUILD_TOOLSET: gcc
APT_COMPILER_PACKAGE: "g++-6"
CXXFLAGS: ""
BUILD_TYPE: "Release"
GTEST_ARGS: ""
CMAKE_FLAGS: ""
RUN_TESTS: true
gcc_7_debug: gcc_7_debug:
<<: *job_definition <<: *job_definition
environment: environment:
@ -365,78 +315,6 @@ jobs:
GTEST_ARGS: "" GTEST_ARGS: ""
CMAKE_FLAGS: "" CMAKE_FLAGS: ""
RUN_TESTS: true RUN_TESTS: true
clang_4_debug:
<<: *job_definition
environment:
CC: clang-4.0
CXX: clang++-4.0
BUILD_TOOLSET: clang
APT_COMPILER_PACKAGE: clang-4.0
CXXFLAGS: "-D_LIBCPP_DEBUG=1"
BUILD_TYPE: "Debug"
GTEST_ARGS: ""
CMAKE_FLAGS: ""
RUN_TESTS: true
clang_4_release:
<<: *job_definition
environment:
CC: clang-4.0
CXX: clang++-4.0
BUILD_TOOLSET: clang
APT_COMPILER_PACKAGE: clang-4.0
CXXFLAGS: ""
BUILD_TYPE: "Release"
GTEST_ARGS: ""
CMAKE_FLAGS: ""
RUN_TESTS: true
clang_5_debug:
<<: *job_definition
environment:
CC: clang-5.0
CXX: clang++-5.0
BUILD_TOOLSET: clang
APT_COMPILER_PACKAGE: clang-5.0
CXXFLAGS: "-D_LIBCPP_DEBUG=1 -D_LIBCPP_ENABLE_NODISCARD=1 -D_LIBCPP_ENABLE_DEPRECATION_WARNINGS=1"
BUILD_TYPE: "Debug"
GTEST_ARGS: ""
CMAKE_FLAGS: ""
RUN_TESTS: true
clang_5_release:
<<: *job_definition
environment:
CC: clang-5.0
CXX: clang++-5.0
BUILD_TOOLSET: clang
APT_COMPILER_PACKAGE: clang-5.0
CXXFLAGS: ""
BUILD_TYPE: "Release"
GTEST_ARGS: ""
CMAKE_FLAGS: ""
RUN_TESTS: true
clang_6_debug:
<<: *job_definition
environment:
CC: clang-6.0
CXX: clang++-6.0
BUILD_TOOLSET: clang
APT_COMPILER_PACKAGE: clang-6.0
CXXFLAGS: "-D_LIBCPP_DEBUG=1 -D_LIBCPP_ENABLE_NODISCARD=1 -D_LIBCPP_ENABLE_DEPRECATION_WARNINGS=1"
BUILD_TYPE: "Debug"
GTEST_ARGS: ""
CMAKE_FLAGS: ""
RUN_TESTS: true
clang_6_release:
<<: *job_definition
environment:
CC: clang-6.0
CXX: clang++-6.0
BUILD_TOOLSET: clang
APT_COMPILER_PACKAGE: clang-6.0
CXXFLAGS: ""
BUILD_TYPE: "Release"
GTEST_ARGS: ""
CMAKE_FLAGS: ""
RUN_TESTS: true
clang_7_debug: clang_7_debug:
<<: *job_definition <<: *job_definition
environment: environment:
@ -642,8 +520,8 @@ jobs:
- run: - run:
name: clang-tidy name: clang-tidy
command: | command: |
# realpath, jq are needed for run-clang-tidy.sh, g++ is needed for pyyaml # jq is needed for run-clang-tidy.sh, g++ is needed for pyyaml
sudo apt-get install realpath g++ jq sudo apt-get install g++ jq
pip install pyyaml pip install pyyaml
mkdir cmake mkdir cmake
cd cmake cd cmake
@ -664,10 +542,6 @@ workflows:
build_and_test: build_and_test:
jobs: jobs:
- gcc_6_debug:
<<: *enable_for_tags
- gcc_6_release:
<<: *enable_for_tags
- gcc_7_debug: - gcc_7_debug:
<<: *enable_for_tags <<: *enable_for_tags
- gcc_7_release: - gcc_7_release:
@ -680,18 +554,6 @@ workflows:
<<: *enable_for_tags <<: *enable_for_tags
- gcc_9_release: - gcc_9_release:
<<: *enable_for_tags <<: *enable_for_tags
- clang_4_debug:
<<: *enable_for_tags
- clang_4_release:
<<: *enable_for_tags
- clang_5_debug:
<<: *enable_for_tags
- clang_5_release:
<<: *enable_for_tags
- clang_6_debug:
<<: *enable_for_tags
- clang_6_release:
<<: *enable_for_tags
- clang_7_debug: - clang_7_debug:
<<: *enable_for_tags <<: *enable_for_tags
- clang_7_release: - clang_7_release:

View File

@ -13,7 +13,7 @@ Build changes:
* Switch to Conan package manager * Switch to Conan package manager
* Allow an easy way to modify how the dependencies are found. This is mostly helpful for package maintainers. * Allow an easy way to modify how the dependencies are found. This is mostly helpful for package maintainers.
* Build with LTO if the compiler supports it * Build with LTO if the compiler supports it
* Now requires CMake 3.10 or later * Now requires CMake 3.10 or later, and GCC 7 or later, or Clang 7 or later
Improvements: Improvements:
* Display the file system configuration when mounting a file system * Display the file system configuration when mounting a file system

View File

@ -69,7 +69,7 @@ Building from source
Requirements Requirements
------------ ------------
- Git (for getting the source code) - Git (for getting the source code)
- GCC version >= 6.5 or Clang >= 4.0 - GCC version >= 7 or Clang >= 7
- CMake version >= 3.10 - CMake version >= 3.10
- Conan package manager - Conan package manager
- libcurl4 (including development headers) - libcurl4 (including development headers)