343 lines
9.3 KiB
YAML
343 lines
9.3 KiB
YAML
# Use, modification, and distribution are
|
|
# subject to the Boost Software License, Version 1.0. (See accompanying
|
|
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
#
|
|
# Copyright Rene Rivera 2015-2019.
|
|
|
|
trigger:
|
|
branches:
|
|
include:
|
|
- develop
|
|
- master
|
|
- feature/*
|
|
pr:
|
|
branches:
|
|
include:
|
|
- develop
|
|
|
|
stages:
|
|
|
|
- stage: Test
|
|
jobs:
|
|
|
|
- job: 'Linux'
|
|
pool:
|
|
vmImage: 'ubuntu-16.04'
|
|
strategy:
|
|
matrix:
|
|
GCC 9:
|
|
TOOLSET: gcc
|
|
TEST_TOOLSET: gcc
|
|
CXX: g++-9
|
|
PACKAGES: g++-9
|
|
GCC 8:
|
|
TOOLSET: gcc
|
|
TEST_TOOLSET: gcc
|
|
CXX: g++-8
|
|
PACKAGES: g++-8
|
|
GCC 7:
|
|
TOOLSET: gcc
|
|
TEST_TOOLSET: gcc
|
|
CXX: g++-7
|
|
PACKAGES: g++-7
|
|
GCC 6:
|
|
TOOLSET: gcc
|
|
TEST_TOOLSET: gcc
|
|
CXX: g++-6
|
|
PACKAGES: g++-6
|
|
GCC 5:
|
|
TOOLSET: gcc
|
|
TEST_TOOLSET: gcc
|
|
CXX: g++-5
|
|
PACKAGES: g++-5
|
|
GCC 4.9:
|
|
TOOLSET: gcc
|
|
TEST_TOOLSET: gcc
|
|
CXX: g++-4.9
|
|
PACKAGES: g++-4.9
|
|
GCC 4.8:
|
|
TOOLSET: gcc
|
|
TEST_TOOLSET: gcc
|
|
CXX: g++-4.8
|
|
PACKAGES: g++-4.8
|
|
GCC 4.7:
|
|
TOOLSET: gcc
|
|
TEST_TOOLSET: gcc
|
|
CXX: g++-4.7
|
|
PACKAGES: g++-4.7
|
|
Clang 8:
|
|
TOOLSET: clang
|
|
TEST_TOOLSET: clang
|
|
CXX: clang++-8
|
|
PACKAGES: clang-8
|
|
LLVM_REPO: llvm-toolchain-xenial-8
|
|
Clang 7:
|
|
TOOLSET: clang
|
|
TEST_TOOLSET: clang
|
|
CXX: clang++-7
|
|
PACKAGES: clang-7
|
|
LLVM_REPO: llvm-toolchain-xenial-7
|
|
Clang 6:
|
|
TOOLSET: clang
|
|
TEST_TOOLSET: clang
|
|
CXX: clang++-6.0
|
|
PACKAGES: clang-6.0
|
|
LLVM_REPO: llvm-toolchain-xenial-6.0
|
|
Clang 5:
|
|
TOOLSET: clang
|
|
TEST_TOOLSET: clang
|
|
CXX: clang++-5.0
|
|
PACKAGES: clang-5.0
|
|
LLVM_REPO: llvm-toolchain-xenial-5.0
|
|
Clang 4:
|
|
TOOLSET: clang
|
|
TEST_TOOLSET: clang
|
|
CXX: clang++-4.0
|
|
PACKAGES: clang-4.0
|
|
LLVM_REPO: llvm-toolchain-xenial-4.0
|
|
Clang 3.9:
|
|
TOOLSET: clang
|
|
TEST_TOOLSET: clang
|
|
CXX: clang++-3.9
|
|
PACKAGES: clang-3.9
|
|
Clang 3.8:
|
|
TOOLSET: clang
|
|
TEST_TOOLSET: clang
|
|
CXX: clang++-3.8
|
|
PACKAGES: clang-3.8
|
|
Clang 3.7:
|
|
TOOLSET: clang
|
|
TEST_TOOLSET: clang
|
|
CXX: clang++-3.7
|
|
PACKAGES: clang-3.7
|
|
Clang 3.6:
|
|
TOOLSET: clang
|
|
TEST_TOOLSET: clang
|
|
CXX: clang++-3.6
|
|
PACKAGES: clang-3.6
|
|
Clang 3.5:
|
|
TOOLSET: clang
|
|
TEST_TOOLSET: clang
|
|
CXX: clang++-3.5
|
|
PACKAGES: clang-3.5
|
|
steps:
|
|
- bash: |
|
|
set -e
|
|
uname -a
|
|
sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
|
|
if test -n "${LLVM_REPO}" ; then
|
|
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
|
|
sudo -E apt-add-repository "deb http://apt.llvm.org/xenial/ ${LLVM_REPO} main"
|
|
fi
|
|
sudo -E apt-get update
|
|
sudo -E apt-get -yq --no-install-suggests --no-install-recommends install ${PACKAGES}
|
|
displayName: Install
|
|
- bash: |
|
|
set -e
|
|
cd src/engine
|
|
set PATH=${PATH};${CXX_PATH}
|
|
./build.sh ${TOOLSET}
|
|
./b2 -v
|
|
cd ../..
|
|
displayName: Build
|
|
- bash: |
|
|
set -e
|
|
CXX_PATH=`which ${CXX}`
|
|
cd test
|
|
echo "using ${TEST_TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam
|
|
python test_all.py ${TEST_TOOLSET}
|
|
cd ..
|
|
displayName: Test
|
|
- bash: |
|
|
set -e
|
|
CXX_PATH=`which ${CXX}`
|
|
echo "using ${TEST_TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam
|
|
./bootstrap.sh --with-toolset=${TOOLSET}
|
|
./b2 --prefix=./.b2 install ${TEST_TOOLSET}
|
|
displayName: Bootstrap
|
|
|
|
- job: 'Windows'
|
|
strategy:
|
|
matrix:
|
|
VS 2019:
|
|
TOOLSET: vc142
|
|
TEST_TOOLSET: msvc
|
|
VM_IMAGE: 'windows-2019'
|
|
VS 2017:
|
|
TOOLSET: vc141
|
|
TEST_TOOLSET: msvc
|
|
VM_IMAGE: 'vs2017-win2016'
|
|
VS 2015:
|
|
TOOLSET: vc14
|
|
TEST_TOOLSET: msvc
|
|
VM_IMAGE: 'vs2015-win2012r2'
|
|
VS 2013:
|
|
TOOLSET: vc12
|
|
TEST_TOOLSET: msvc
|
|
VM_IMAGE: 'vs2015-win2012r2'
|
|
MinGW 8.1.0:
|
|
TOOLSET: mingw
|
|
TEST_TOOLSET: gcc
|
|
VM_IMAGE: 'vs2017-win2016'
|
|
pool:
|
|
vmImage: $(VM_IMAGE)
|
|
steps:
|
|
- powershell: |
|
|
cd src/engine
|
|
$env:path += ';' + $env:CXX_PATH
|
|
cmd /c build.bat $env:TOOLSET
|
|
./b2.exe -v
|
|
cd ../..
|
|
displayName: Build
|
|
- powershell: |
|
|
cd test
|
|
echo "using" $env:TEST_TOOLSET ":" ":" $env:CXX ";" > $env:HOME/user-config.jam
|
|
python test_all.py $env:TEST_TOOLSET
|
|
cd ..
|
|
displayName: Test
|
|
- powershell: |
|
|
$env:path += ';' + $env:CXX_PATH
|
|
echo "using" $env:TEST_TOOLSET ":" ":" $env:CXX ";" > $env:HOME/user-config.jam
|
|
./bootstrap.bat
|
|
./b2.exe --prefix=./.b2 install ${TEST_TOOLSET}
|
|
displayName: Bootstrap
|
|
|
|
- job: 'macOS'
|
|
strategy:
|
|
matrix:
|
|
Xcode 10.2.1:
|
|
TOOLSET: clang
|
|
TEST_TOOLSET: clang
|
|
CXX: clang++
|
|
XCODE_APP: /Applications/Xcode_10.2.1.app
|
|
VM_IMAGE: 'macOS-10.14'
|
|
Xcode 10.2:
|
|
TOOLSET: clang
|
|
TEST_TOOLSET: clang
|
|
CXX: clang++
|
|
XCODE_APP: /Applications/Xcode_10.2.app
|
|
VM_IMAGE: 'macOS-10.14'
|
|
Xcode 10.1:
|
|
TOOLSET: clang
|
|
TEST_TOOLSET: clang
|
|
CXX: clang++
|
|
XCODE_APP: /Applications/Xcode_10.1.app
|
|
VM_IMAGE: 'macOS-10.14'
|
|
Xcode 10.0:
|
|
TOOLSET: clang
|
|
TEST_TOOLSET: clang
|
|
CXX: clang++
|
|
XCODE_APP: /Applications/Xcode_10.app
|
|
VM_IMAGE: 'macOS-10.14'
|
|
Xcode 9.4.1:
|
|
TOOLSET: clang
|
|
TEST_TOOLSET: clang
|
|
CXX: clang++
|
|
XCODE_APP: /Applications/Xcode_9.4.1.app
|
|
VM_IMAGE: 'macOS-10.13'
|
|
Xcode 9.4:
|
|
TOOLSET: clang
|
|
TEST_TOOLSET: clang
|
|
CXX: clang++
|
|
XCODE_APP: /Applications/Xcode_9.4.app
|
|
VM_IMAGE: 'macOS-10.13'
|
|
Xcode 9.3.1:
|
|
TOOLSET: clang
|
|
TEST_TOOLSET: clang
|
|
CXX: clang++
|
|
XCODE_APP: /Applications/Xcode_9.3.1.app
|
|
VM_IMAGE: 'macOS-10.13'
|
|
Xcode 9.3:
|
|
TOOLSET: clang
|
|
TEST_TOOLSET: clang
|
|
CXX: clang++
|
|
XCODE_APP: /Applications/Xcode_9.3.app
|
|
VM_IMAGE: 'macOS-10.13'
|
|
Xcode 9.2:
|
|
TOOLSET: clang
|
|
TEST_TOOLSET: clang
|
|
CXX: clang++
|
|
XCODE_APP: /Applications/Xcode_9.2.app
|
|
VM_IMAGE: 'macOS-10.13'
|
|
Xcode 9.1:
|
|
TOOLSET: clang
|
|
TEST_TOOLSET: clang
|
|
CXX: clang++
|
|
XCODE_APP: /Applications/Xcode_9.1.app
|
|
VM_IMAGE: 'macOS-10.13'
|
|
Xcode 9.0.1:
|
|
TOOLSET: clang
|
|
TEST_TOOLSET: clang
|
|
CXX: clang++
|
|
XCODE_APP: /Applications/Xcode_9.0.1.app
|
|
VM_IMAGE: 'macOS-10.13'
|
|
Xcode 9.0:
|
|
TOOLSET: clang
|
|
TEST_TOOLSET: clang
|
|
CXX: clang++
|
|
XCODE_APP: /Applications/Xcode_9.app
|
|
VM_IMAGE: 'macOS-10.13'
|
|
Xcode 8.3.3:
|
|
TOOLSET: clang
|
|
TEST_TOOLSET: clang
|
|
CXX: clang++
|
|
XCODE_APP: /Applications/Xcode_8.3.3.app
|
|
VM_IMAGE: 'macOS-10.13'
|
|
pool:
|
|
vmImage: $(VM_IMAGE)
|
|
steps:
|
|
- bash: |
|
|
set -e
|
|
uname -a
|
|
sudo xcode-select -switch ${XCODE_APP}
|
|
which clang++
|
|
displayName: Install
|
|
- bash: |
|
|
set -e
|
|
cd src/engine
|
|
./build.sh ${TOOLSET}
|
|
./b2 -v
|
|
cd ../..
|
|
displayName: Build
|
|
- bash: |
|
|
set -e
|
|
CXX_PATH=`which ${CXX}`
|
|
cd test
|
|
echo "using ${TEST_TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam
|
|
python test_all.py ${TEST_TOOLSET}
|
|
cd ..
|
|
displayName: Test
|
|
- bash: |
|
|
set -e
|
|
CXX_PATH=`which ${CXX}`
|
|
echo "using ${TEST_TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam
|
|
./bootstrap.sh --with-toolset=${TOOLSET}
|
|
./b2 --prefix=./.b2 install ${TEST_TOOLSET}
|
|
displayName: Bootstrap
|
|
|
|
- stage: WebsiteUpdate
|
|
displayName: 'Website Update'
|
|
condition: in(variables['Build.SourceBranch'], 'refs/heads/master', 'refs/heads/develop')
|
|
jobs:
|
|
|
|
- job: Documentation
|
|
pool:
|
|
vmImage: 'ubuntu-16.04'
|
|
steps:
|
|
- task: UsePythonVersion@0
|
|
inputs:
|
|
versionSpec: '2.x'
|
|
- task: UseRubyVersion@0
|
|
- bash: |
|
|
pip install --user Pygments
|
|
pip install --user "https://github.com/bfgroup/jam_pygments/archive/master.zip"
|
|
gem install asciidoctor
|
|
gem install pygments.rb
|
|
echo "using asciidoctor ;" >> project-config.jam
|
|
./bootstrap.sh
|
|
pushd doc
|
|
../b2 --website-doc-dir=manual/$(Build.SourceBranchName) website
|
|
displayName: 'Build & Publish'
|
|
env:
|
|
GH_TOKEN: $(GitHubToken)
|