# 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)