diff options
Diffstat (limited to 'src/boost/tools/build/azure-pipelines.yml')
-rw-r--r-- | src/boost/tools/build/azure-pipelines.yml | 342 |
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) |