summaryrefslogtreecommitdiffstats
path: root/src/boost/tools/build/azure-pipelines.yml
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/tools/build/azure-pipelines.yml')
-rw-r--r--src/boost/tools/build/azure-pipelines.yml342
1 files changed, 342 insertions, 0 deletions
diff --git a/src/boost/tools/build/azure-pipelines.yml b/src/boost/tools/build/azure-pipelines.yml
new file mode 100644
index 00000000..8211710d
--- /dev/null
+++ b/src/boost/tools/build/azure-pipelines.yml
@@ -0,0 +1,342 @@
+# 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)