Containerise Linux build (#145)
This commit is contained in:
@@ -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
16
ci/linux_x64
Normal 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
|
||||
Reference in New Issue
Block a user