Containerise Linux build (#145)

This commit is contained in:
Amaury Chamayou
2020-03-19 09:28:06 +00:00
committed by GitHub
parent f4de00cbca
commit a6d6eecf22
2 changed files with 66 additions and 30 deletions

View File

@@ -8,19 +8,49 @@ jobs:
- job:
displayName: Linux
pool:
vmImage: 'ubuntu-16.04'
vmImage: 'ubuntu-18.04'
container: snmallocciteam/build_linux_x64:latest
strategy:
matrix:
Clang-6 Debug:
CC: clang-6.0
CXX: clang++-6.0
Clang-7 Debug:
CC: clang-7
CXX: clang++-7
BuildType: Debug
SelfHost: false
CMakeArgs: ''
Clang-6 Release:
CC: clang-6.0
CXX: clang++-6.0
Clang-7 Release:
CC: clang-7
CXX: clang++-7
BuildType: Release
SelfHost: false
CMakeArgs: ''
Clang-8 Debug:
CC: clang-8
CXX: clang++-8
BuildType: Debug
SelfHost: false
CMakeArgs: ''
Clang-8 Release:
CC: clang-8
CXX: clang++-8
BuildType: Release
SelfHost: false
CMakeArgs: ''
Clang-9 Debug:
CC: clang-9
CXX: clang++-9
BuildType: Debug
SelfHost: false
CMakeArgs: ''
Clang-9 Release:
CC: clang-9
CXX: clang++-9
BuildType: Release
SelfHost: false
CMakeArgs: ''
@@ -40,26 +70,21 @@ jobs:
CMakeArgs: ''
Self Host:
CC: clang-6.0
CXX: clang++-6.0
CC: clang-7
CXX: clang++-7
BuildType: Debug
SelfHost: true
CMakeArgs: ''
Cache Friendly:
CC: clang-6.0
CXX: clang++-6.0
CC: clang-7
CXX: clang++-7
BuildType: Debug
SelfHost: false
CMakeArgs: '-DCACHE_FRIENDLY_OFFSET=64'
steps:
- script: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install -y ninja-build libc++-dev libc++abi-dev libc++abi1 libstdc++-7-dev gcc-8 g++-8
# sudo apt-get install clang-6.0 clang++-6.0
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/$(CC) 100
sudo update-alternatives --set cc /usr/bin/$(CC)
@@ -69,7 +94,7 @@ jobs:
CMAKE_CXX_FLAGS="-std=c++17"
if [[ "$CXX" == clang++* ]]; then CMAKE_CXX_FLAGS+=" -stdlib=libstdc++"; fi
displayName: 'Install Build Dependencies'
displayName: 'Select compiler version'
- task: CMake@1
displayName: 'CMake .. $(CMakeArgs) -GNinja -DCMAKE_BUILD_TYPE=$(BuildType) -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS" -DSNMALLOC_CI_BUILD=On -DSNMALLOC_RUST_SUPPORT=On'
@@ -226,25 +251,20 @@ jobs:
displayName: Format
pool:
vmImage: 'ubuntu-18.04'
container: snmallocciteam/build_linux_x64:latest
steps:
- script: |
set -eo pipefail
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo apt-add-repository "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-9 main"
sudo apt-get update
sudo apt-get install -y clang-format-9 clang-tidy-9
sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-9 100
mkdir build
cd build
cmake -GNinja ..
displayName: 'Install clang'
- task: CMake@1
displayName: 'CMake ..'
inputs:
cmakeArgs: '..'
env:
CC: /usr/bin/gcc-8
CXX: /usr/bin/g++-8
- script: |
set -eo pipefail
make clangformat
ninja clangformat
git diff --exit-code $(Build.SourceVersion)
workingDirectory: build

16
ci/linux_x64 Normal file
View File

@@ -0,0 +1,16 @@
FROM ubuntu:18.04
RUN apt update \
&& apt install -y software-properties-common \
&& add-apt-repository ppa:ubuntu-toolchain-r/test \
&& apt update \
&& apt install --no-install-recommends -y sudo cmake ninja-build git \
&& apt install --no-install-recommends -y g++-8 \
&& apt install --no-install-recommends -y clang++-7 \
&& apt install --no-install-recommends -y clang++-8 \
&& apt install --no-install-recommends -y clang++-9 \
&& apt install --no-install-recommends -y clang-format-9 clang-tidy-9 \
&& update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-9 100 \
&& apt remove -y software-properties-common \
&& apt -y autoremove \
&& apt -y clean