mirror of
https://github.com/boostorg/predef.git
synced 2026-01-19 04:22:14 +00:00
347 lines
14 KiB
YAML
347 lines
14 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 René Ferdinand Rivera Morell 2019-2021.
|
|
|
|
trigger:
|
|
branches:
|
|
include:
|
|
- develop
|
|
- master
|
|
- feature/*
|
|
paths:
|
|
exclude:
|
|
- .circleci/*
|
|
- .cirrus.yml
|
|
- .drone.star
|
|
- .github/workflows/*
|
|
- .semaphore/*
|
|
- .travis.yml
|
|
- appveyor.yml
|
|
pr:
|
|
branches:
|
|
include:
|
|
- develop
|
|
|
|
resources:
|
|
containers:
|
|
- { container: ubuntu_2404, image: 'ubuntu:24.04', options: '--name container -v /usr/bin/docker:/tmp/docker:ro' }
|
|
- { container: ubuntu_2204, image: 'ubuntu:22.04', options: '--name container -v /usr/bin/docker:/tmp/docker:ro' }
|
|
# - { container: ubuntu_2004, image: 'ubuntu:20.04', options: '--name container -v /usr/bin/docker:/tmp/docker:ro' }
|
|
- { container: ubuntu_1804, image: 'ubuntu:18.04', options: '--name container -v /usr/bin/docker:/tmp/docker:ro' }
|
|
- { container: ubuntu_1604, image: 'ubuntu:16.04', options: '--name container -v /usr/bin/docker:/tmp/docker:ro' }
|
|
|
|
stages:
|
|
|
|
- stage: Test
|
|
jobs:
|
|
|
|
- job: 'Linux'
|
|
strategy:
|
|
matrix:
|
|
GCC 14 (GNU): { CXX: g++-14, PACKAGES: g++-14, VM_IMAGE: 'ubuntu-24.04', TOOLSET: gcc, B2_ARGS: 'cxxstd=03,11,14,17,20 cxxstd-dialect=gnu' }
|
|
GCC 14 (ISO): { CXX: g++-14, PACKAGES: g++-14, VM_IMAGE: 'ubuntu-24.04', TOOLSET: gcc, B2_ARGS: 'cxxstd=03,11,14,17,20 cxxstd-dialect=iso' }
|
|
GCC 13: { CXX: g++-13, PACKAGES: g++-13, VM_IMAGE: 'ubuntu-24.04', TOOLSET: gcc }
|
|
GCC 12: { CXX: g++-12, PACKAGES: g++-12, VM_IMAGE: 'ubuntu-24.04', TOOLSET: gcc }
|
|
GCC 11: { CXX: g++-11, PACKAGES: g++-11, VM_IMAGE: 'ubuntu-24.04', TOOLSET: gcc }
|
|
GCC 10: { CXX: g++-10, PACKAGES: g++-10, VM_IMAGE: 'ubuntu-24.04', TOOLSET: gcc }
|
|
GCC 9: { CXX: g++-9, PACKAGES: g++-9, VM_IMAGE: 'ubuntu-24.04', TOOLSET: gcc }
|
|
Clang 18: { CXX: clang++-18, PACKAGES: clang-18, LLVM_OS: noble, LLVM_VER: 18, VM_IMAGE: 'ubuntu-24.04', TOOLSET: clang }
|
|
Clang 17: { CXX: clang++-17, PACKAGES: clang-17, LLVM_OS: noble, LLVM_VER: 17, VM_IMAGE: 'ubuntu-24.04', TOOLSET: clang }
|
|
pool:
|
|
vmImage: $(VM_IMAGE)
|
|
steps:
|
|
- bash: |
|
|
set -e
|
|
uname -a
|
|
./tools/ci/linux-cxx-install.sh
|
|
displayName: 'Install CXX'
|
|
- bash: |
|
|
set -e
|
|
pushd ${HOME}
|
|
wget -nv https://github.com/bfgroup/b2/archive/release.tar.gz
|
|
tar -zxf release.tar.gz
|
|
cd b2-release
|
|
CXX= ./bootstrap.sh
|
|
sudo ./b2 install
|
|
popd
|
|
displayName: 'Install B2'
|
|
- bash: |
|
|
set -e
|
|
CXX_PATH=`which ${CXX}`
|
|
echo "using ${TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam
|
|
pushd test
|
|
b2 --verbose-test -a toolset=${TOOLSET} ${B2_ARGS} predef-info
|
|
b2 --debug-configuration -a toolset=${TOOLSET} ${B2_ARGS} predef predef-headers
|
|
popd
|
|
displayName: Test
|
|
|
|
- job: 'macOS'
|
|
strategy:
|
|
matrix:
|
|
Xcode 16.0: {TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_16.0.app, VM_IMAGE: 'macOS-15'}
|
|
Xcode 15.4: {TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_15.4.app, VM_IMAGE: 'macOS-14'}
|
|
Xcode 14.3.1: {TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_14.3.1.app, VM_IMAGE: 'macOS-13'}
|
|
Xcode 14.2: {TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_14.2.app, VM_IMAGE: 'macOS-13'}
|
|
Xcode 14.1: {TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_14.1.app, VM_IMAGE: 'macOS-13'}
|
|
pool:
|
|
vmImage: $(VM_IMAGE)
|
|
steps:
|
|
- bash: |
|
|
set -e
|
|
uname -a
|
|
sudo xcode-select -switch ${XCODE_APP}
|
|
which clang++
|
|
clang++ --version
|
|
displayName: 'Install CXX'
|
|
- bash: |
|
|
set -e
|
|
pushd ${HOME}
|
|
wget -nv https://github.com/bfgroup/b2/archive/release.tar.gz
|
|
tar -zxf release.tar.gz
|
|
cd b2-release
|
|
CXX= ./bootstrap.sh
|
|
sudo ./b2 install
|
|
popd
|
|
displayName: 'Install B2'
|
|
- bash: |
|
|
set -e
|
|
CXX_PATH=`which ${CXX}`
|
|
echo "using ${TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam
|
|
pushd test
|
|
b2 --verbose-test -a toolset=${TOOLSET} ${B2_ARGS} predef-info
|
|
b2 --debug-configuration -a toolset=${TOOLSET} ${B2_ARGS} predef predef-headers
|
|
popd
|
|
displayName: Test
|
|
|
|
- job: 'Windows'
|
|
strategy:
|
|
matrix:
|
|
VS 2019:
|
|
TOOLSET: msvc
|
|
TOOLSET_VERSION: 14.2
|
|
B2_ARGS: address-model=32,64 cxxstd=14,latest
|
|
VM_IMAGE: 'windows-2019'
|
|
VS 2019 (UWP DESKTOP):
|
|
TOOLSET: msvc
|
|
TOOLSET_VERSION: 14.2
|
|
B2_ARGS: address-model=64 define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP
|
|
VM_IMAGE: 'windows-2019'
|
|
VS 2019 (UWP PHONE):
|
|
TOOLSET: msvc
|
|
TOOLSET_VERSION: 14.2
|
|
B2_ARGS: address-model=64 define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP
|
|
VM_IMAGE: 'windows-2019'
|
|
VS 2019 (UWP STORE):
|
|
TOOLSET: msvc
|
|
TOOLSET_VERSION: 14.2
|
|
B2_ARGS: address-model=64 define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_PC_APP
|
|
VM_IMAGE: 'windows-2019'
|
|
VS 2019 (UWP SERVER):
|
|
TOOLSET: msvc
|
|
TOOLSET_VERSION: 14.2
|
|
B2_ARGS: address-model=64 define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_SERVER
|
|
VM_IMAGE: 'windows-2019'
|
|
VS 2019 (UWP SYSTEM):
|
|
TOOLSET: msvc
|
|
TOOLSET_VERSION: 14.2
|
|
B2_ARGS: address-model=64 define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_SYSTEM
|
|
VM_IMAGE: 'windows-2019'
|
|
VS 2022:
|
|
TOOLSET: msvc
|
|
TOOLSET_VERSION: 14.3
|
|
VM_IMAGE: 'windows-2022'
|
|
MinGW 8.1.0:
|
|
TOOLSET: gcc
|
|
VM_IMAGE: 'windows-2019'
|
|
MinGW 8.1.0 (UWP DESKTOP):
|
|
TOOLSET: gcc
|
|
B2_ARGS: define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP
|
|
VM_IMAGE: 'windows-2019'
|
|
MinGW 8.1.0 (UWP STORE):
|
|
TOOLSET: gcc
|
|
B2_ARGS: define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_PC_APP
|
|
VM_IMAGE: 'windows-2019'
|
|
pool:
|
|
vmImage: $(VM_IMAGE)
|
|
steps:
|
|
- script: |
|
|
cd %BUILD_SOURCESDIRECTORY%/..
|
|
curl "https://github.com/bfgroup/b2/archive/release.zip" -L -o b2.zip
|
|
displayName: Download B2
|
|
- task: ExtractFiles@1
|
|
inputs:
|
|
archiveFilePatterns: $(Build.SourcesDirectory)/../b2.zip
|
|
destinationFolder: $(Build.SourcesDirectory)/..
|
|
cleanDestinationFolder: false
|
|
displayName: Extract B2
|
|
- script: |
|
|
echo using %TOOLSET% ^: %TOOLSET_VERSION% ^; > %HOMEDRIVE%%HOMEPATH%/user-config.jam
|
|
cd %BUILD_SOURCESDIRECTORY%/../b2-release
|
|
cmd.exe /c bootstrap.bat
|
|
displayName: Install B2
|
|
- script: |
|
|
set BOOST_BUILD_PATH=%BUILD_SOURCESDIRECTORY%/../b2-release
|
|
cd %BUILD_SOURCESDIRECTORY%/test
|
|
%BUILD_SOURCESDIRECTORY%/../b2-release/b2.exe --verbose-test -a toolset=%TOOLSET% %B2_ARGS% predef-info
|
|
%BUILD_SOURCESDIRECTORY%/../b2-release/b2.exe --debug-configuration -a toolset=%TOOLSET% %B2_ARGS% predef predef-headers
|
|
displayName: Test
|
|
|
|
- job: 'Co_Linux'
|
|
strategy:
|
|
matrix:
|
|
GCC 8: {CXX: g++-8, TOOLSET: gcc, PACKAGES: g++-8, CONTAINER: "ubuntu_1804"}
|
|
GCC 7: {CXX: g++-7, TOOLSET: gcc, PACKAGES: g++-7, CONTAINER: "ubuntu_1804"}
|
|
GCC 6: {CXX: g++-6, TOOLSET: gcc, PACKAGES: g++-6, CONTAINER: "ubuntu_1804"}
|
|
GCC 5: {CXX: g++-5, TOOLSET: gcc, PACKAGES: g++-5, CONTAINER: "ubuntu_1804"}
|
|
GCC 4.9: {CXX: g++-4.9, TOOLSET: gcc, PACKAGES: g++-4.9, CONTAINER: "ubuntu_1604"}
|
|
GCC 4.8: {CXX: g++-4.8, TOOLSET: gcc, PACKAGES: g++-4.8, CONTAINER: "ubuntu_1804"}
|
|
Clang 16: {CXX: clang++-16, TOOLSET: clang, PACKAGES: clang-16, LLVM_VER: 16, LLVM_OS: 'focal', CONTAINER: "ubuntu_2204"}
|
|
Clang 15: {CXX: clang++-15, TOOLSET: clang, PACKAGES: clang-15, LLVM_VER: 15, LLVM_OS: 'focal', CONTAINER: "ubuntu_2204"}
|
|
Clang 14: {CXX: clang++-14, TOOLSET: clang, PACKAGES: clang-14, LLVM_VER: 14, LLVM_OS: 'focal', CONTAINER: "ubuntu_2204"}
|
|
Clang 13: {CXX: clang++-13, TOOLSET: clang, PACKAGES: clang-13, LLVM_VER: 13, LLVM_OS: 'focal', CONTAINER: "ubuntu_2204"}
|
|
Clang 12: {CXX: clang++-12, TOOLSET: clang, PACKAGES: clang-12, LLVM_VER: 12, LLVM_OS: 'focal', CONTAINER: "ubuntu_2204"}
|
|
Clang 11: {CXX: clang++-11, TOOLSET: clang, PACKAGES: clang-11, LLVM_VER: 11, LLVM_OS: 'focal', CONTAINER: "ubuntu_2204"}
|
|
Clang 10: {CXX: clang++-10, TOOLSET: clang, PACKAGES: clang-10, CONTAINER: "ubuntu_1804"}
|
|
Clang 9: {CXX: clang++-9, TOOLSET: clang, PACKAGES: clang-9, CONTAINER: "ubuntu_1804"}
|
|
Clang 8: {CXX: clang++-8, TOOLSET: clang, PACKAGES: clang-8, CONTAINER: "ubuntu_1804"}
|
|
Clang 7: {CXX: clang++-7, TOOLSET: clang, PACKAGES: clang-7, CONTAINER: "ubuntu_1804"}
|
|
Clang 6: {CXX: clang++-6.0, TOOLSET: clang, PACKAGES: clang-6.0, CONTAINER: "ubuntu_1804"}
|
|
Clang 5: {CXX: clang++-5.0, TOOLSET: clang, PACKAGES: clang-5.0, LLVM_VER: 5.0, LLVM_OS: 'bionic', CONTAINER: "ubuntu_1804"}
|
|
Clang 4: {CXX: clang++-4.0, TOOLSET: clang, PACKAGES: clang-4.0, LLVM_VER: 4.0, LLVM_OS: 'xenial', CONTAINER: "ubuntu_1604"}
|
|
Clang 3.9: {CXX: clang++-3.9, TOOLSET: clang, PACKAGES: clang-3.9, LLVM_VER: 3.9, LLVM_OS: 'xenial', CONTAINER: "ubuntu_1604"}
|
|
Clang 3.8: {CXX: clang++-3.8, TOOLSET: clang, PACKAGES: clang-3.8, LLVM_VER: 3.8, LLVM_OS: 'xenial', CONTAINER: "ubuntu_1604"}
|
|
Clang 3.7: {CXX: clang++-3.7, TOOLSET: clang, PACKAGES: clang-3.7, CONTAINER: "ubuntu_1604"}
|
|
Clang 3.6: {CXX: clang++-3.6, TOOLSET: clang, PACKAGES: clang-3.6, CONTAINER: "ubuntu_1604"}
|
|
pool:
|
|
vmImage: 'ubuntu-20.04'
|
|
container: $[ variables['CONTAINER'] ]
|
|
steps:
|
|
- script: |
|
|
which docker
|
|
/tmp/docker exec -t -u root container mv /etc/sudoers /etc/sudoers.bak
|
|
/tmp/docker exec -t -u root container apt-get -qq update
|
|
/tmp/docker exec -t -u root container apt-get -qq install sudo
|
|
/tmp/docker exec -t -u root container mv /etc/sudoers.bak /etc/sudoers
|
|
displayName: Sudorize
|
|
- bash: |
|
|
set -e
|
|
uname -a
|
|
./tools/ci/linux-cxx-install.sh
|
|
displayName: 'Install CXX'
|
|
- bash: |
|
|
set -e
|
|
pushd ${HOME}
|
|
wget -nv https://github.com/bfgroup/b2/archive/release.tar.gz
|
|
tar -zxf release.tar.gz
|
|
cd b2-release
|
|
./bootstrap.sh --cxx=${CXX} ${TOOLSET}
|
|
CXX_PATH=`which ${CXX}`
|
|
echo "using ${TOOLSET} : : ${CXX_PATH} ;" > "${HOME}/user-config.jam"
|
|
sudo ./b2 --debug-configuration "--user-config=${HOME}/user-config.jam" install toolset=${TOOLSET}
|
|
popd
|
|
displayName: 'Install B2'
|
|
- bash: |
|
|
set -e
|
|
pushd test
|
|
b2 --verbose-test "--user-config=${HOME}/user-config.jam" -a toolset=${TOOLSET} ${B2_ARGS} predef-info
|
|
b2 --debug-configuration "--user-config=${HOME}/user-config.jam" -a toolset=${TOOLSET} ${B2_ARGS} predef predef-headers
|
|
popd
|
|
displayName: Test
|
|
|
|
- stage: Extra
|
|
dependsOn: [Test]
|
|
jobs:
|
|
|
|
- job: 'Linux'
|
|
strategy:
|
|
matrix:
|
|
TinyCC: {
|
|
EXE: tcc, PACKAGES: tcc, VM_IMAGE: 'ubuntu-latest',
|
|
TOOLSET: cc, VERSION: "tcc~0.9.27",
|
|
B2_CONFIG: '<cflags>"-std=c11" <-soname>-soname',
|
|
B2_ARGS: 'c' }
|
|
pool:
|
|
vmImage: $(VM_IMAGE)
|
|
continueOnError: 'true'
|
|
steps:
|
|
- bash: |
|
|
set -e
|
|
uname -a
|
|
./tools/ci/linux-cxx-install.sh
|
|
displayName: 'Install CXX'
|
|
- bash: |
|
|
set -e
|
|
pushd ${HOME}
|
|
wget -nv https://github.com/bfgroup/b2/archive/main.tar.gz
|
|
tar -zxf main.tar.gz
|
|
cd b2-main
|
|
./bootstrap.sh
|
|
sudo ./b2 install
|
|
popd
|
|
displayName: 'Install B2'
|
|
- bash: |
|
|
set -e
|
|
EXE_PATH=`which ${EXE}`
|
|
echo "using ${TOOLSET} : ${VERSION} : ${EXE_PATH} : ${B2_CONFIG} ;" > ${HOME}/user-config.jam
|
|
pushd test
|
|
b2 --verbose-test -a toolset=${TOOLSET} ${B2_ARGS}
|
|
b2 --debug-configuration -a toolset=${TOOLSET} ${B2_ARGS}
|
|
popd
|
|
displayName: Test
|
|
|
|
- stage: WebsiteUpdate
|
|
displayName: 'Website Update'
|
|
dependsOn: [Test]
|
|
condition: and(in(variables['Build.SourceBranch'], 'refs/heads/master', 'refs/heads/develop'), eq(variables['Build.Repository.Name'], 'grafikrobot/hash-predef'))
|
|
jobs:
|
|
|
|
- job: Documentation
|
|
pool:
|
|
vmImage: 'ubuntu-latest'
|
|
steps:
|
|
- task: UseRubyVersion@0
|
|
- bash: |
|
|
gem install asciidoctor
|
|
gem install rouge
|
|
displayName: 'Install Doc Tools'
|
|
- bash: |
|
|
set -e
|
|
pushd ${HOME}
|
|
wget -nv https://github.com/bfgroup/b2/archive/release.tar.gz
|
|
tar -zxf release.tar.gz
|
|
cd b2-release
|
|
CXX= ./bootstrap.sh
|
|
sudo ./b2 install
|
|
popd
|
|
displayName: 'Install B2'
|
|
- bash: |
|
|
rm -rf ${WEB_DIR}
|
|
git clone --verbose --branch gh-pages --depth 1 "https://${GH_TOKEN}github.com/grafikrobot/hash-predef.git" ${WEB_DIR} || exit 1
|
|
pushd ${WEB_DIR}
|
|
git rm --ignore-unmatch -r "${DOC_DIR}" || exit 1
|
|
mkdir -p "${DOC_DIR}" || exit 1
|
|
popd
|
|
displayName: 'Clone Website'
|
|
env:
|
|
GH_TOKEN: $(GitHubToken)
|
|
WEB_DIR: website
|
|
DOC_DIR: manual/$(Build.SourceBranchName)
|
|
- bash: |
|
|
echo "using asciidoctor ;" > ${HOME}/user-config.jam
|
|
pushd doc
|
|
b2 --doc-dir=${WEB_DIR}/${DOC_DIR} html
|
|
git config user.email "doc-bot"
|
|
git config user.name "doc-bot"
|
|
cd ${WEB_DIR}/${DOC_DIR}
|
|
git add --verbose . || exit 1
|
|
git commit -m "Update documentation."
|
|
git push
|
|
popd
|
|
displayName: 'Build & Publish'
|
|
env:
|
|
GH_TOKEN: $(GitHubToken)
|
|
WEB_DIR: website
|
|
DOC_DIR: manual/$(Build.SourceBranchName)
|