# Copyright 2020 Evan Miller # Copyright 2020 Matt Borland # Copyright 2021 John Maddock # Distributed under the Boost Software License, Version 1.0. # (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt) name: CI on: push: branches: - master - develop pull_request: release: types: [published, created, edited] jobs: ubuntu-jammy: runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: compiler: [ g++-11, g++-12, clang++-14 ] steps: - uses: actions/checkout@v3 with: fetch-depth: '0' - uses: mstachniuk/ci-skip@v1 with: commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]' commit-filter-separator: ';' fail-fast: true - name: Set TOOLSET run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV - name: Add repository run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test" - name: Install packages run: sudo apt install g++-11 g++-12 clang-14 - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - name: Update Dependencies run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits working-directory: ../boost-root - name: Copy files run: cp -r $GITHUB_WORKSPACE/* libs/config working-directory: ../boost-root - name: Bootstrap run: ./bootstrap.sh working-directory: ../boost-root - name: Generate headers run: ./b2 headers working-directory: ../boost-root - name: Generate user config run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} ;" > ~/user-config.jam' working-directory: ../boost-root - name: Config info run: ../../../b2 print_config_info toolset=$TOOLSET cxxstd=03,11,14,17,20 working-directory: ../boost-root/libs/config/test - name: Test run: ../../../b2 toolset=$TOOLSET cxxstd=03,11,14,17,20 working-directory: ../boost-root/libs/config/test ubuntu-jammy-clang: runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: compiler: [ clang++-11, clang++-12, clang++-13 ] steps: - uses: actions/checkout@v3 with: fetch-depth: '0' - uses: mstachniuk/ci-skip@v1 with: commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]' commit-filter-separator: ';' fail-fast: true - name: Set TOOLSET run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV - name: Add repository run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test" - name: Install packages run: sudo apt install clang-11 clang-12 clang-13 - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - name: Update Dependencies run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits working-directory: ../boost-root - name: Copy files run: cp -r $GITHUB_WORKSPACE/* libs/config working-directory: ../boost-root - name: Bootstrap run: ./bootstrap.sh working-directory: ../boost-root - name: Generate headers run: ./b2 headers working-directory: ../boost-root - name: Generate user config run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} ;" > ~/user-config.jam' working-directory: ../boost-root - name: Config info run: ../../../b2 print_config_info toolset=$TOOLSET cxxstd=03,11,14,17,20 working-directory: ../boost-root/libs/config/test - name: Test run: ../../../b2 toolset=$TOOLSET cxxstd=03,11,14,17,20 working-directory: ../boost-root/libs/config/test ubuntu-focal: runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: compiler: [ g++-9, g++-10, clang++-9, clang++-10 ] steps: - uses: actions/checkout@v3 with: fetch-depth: '0' - uses: mstachniuk/ci-skip@v1 with: commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]' commit-filter-separator: ';' fail-fast: true - name: Set TOOLSET run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV - name: Add repository run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test" - name: Install packages run: sudo apt install g++-9 g++-10 clang-9 clang-10 - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - name: Update Dependencies run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits working-directory: ../boost-root - name: Copy files run: cp -r $GITHUB_WORKSPACE/* libs/config working-directory: ../boost-root - name: Bootstrap run: ./bootstrap.sh working-directory: ../boost-root - name: Generate headers run: ./b2 headers working-directory: ../boost-root - name: Generate user config run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} ;" > ~/user-config.jam' working-directory: ../boost-root - name: Config info run: ../../../b2 print_config_info toolset=$TOOLSET cxxstd=03,11,14,17,2a working-directory: ../boost-root/libs/config/test - name: Test run: ../../../b2 toolset=$TOOLSET cxxstd=03,11,14,17,2a working-directory: ../boost-root/libs/config/test macos_11: runs-on: macos-11 strategy: fail-fast: false matrix: toolset: [ clang, gcc-11, gcc-10, gcc-9 ] steps: - uses: actions/checkout@v3 with: fetch-depth: '0' - uses: mstachniuk/ci-skip@v1 with: commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[linux];[Linux];[LINUX]' commit-filter-separator: ';' fail-fast: true - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - name: Update Dependencies run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits working-directory: ../boost-root - name: Copy files run: cp -r $GITHUB_WORKSPACE/* libs/config working-directory: ../boost-root - name: Bootstrap run: ./bootstrap.sh working-directory: ../boost-root - name: Generate headers run: ./b2 headers working-directory: ../boost-root - name: Config info run: ../../../b2 print_config_info toolset=${{ matrix.toolset }} cxxstd=03,11,14,17,2a working-directory: ../boost-root/libs/config/test - name: Test run: ../../../b2 toolset=${{ matrix.toolset }} cxxstd=03,11,14,17,2a working-directory: ../boost-root/libs/config/test macos_12: runs-on: macos-12 strategy: fail-fast: false matrix: toolset: [ clang ] steps: - uses: actions/checkout@v3 with: fetch-depth: '0' - uses: mstachniuk/ci-skip@v1 with: commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[linux];[Linux];[LINUX]' commit-filter-separator: ';' fail-fast: true - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - name: Update Dependencies run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits working-directory: ../boost-root - name: Copy files run: cp -r $GITHUB_WORKSPACE/* libs/config working-directory: ../boost-root - name: Bootstrap run: ./bootstrap.sh working-directory: ../boost-root - name: Generate headers run: ./b2 headers working-directory: ../boost-root - name: Config info run: ../../../b2 print_config_info toolset=${{ matrix.toolset }} cxxstd=03,11,14,17,2a working-directory: ../boost-root/libs/config/test - name: Test run: ../../../b2 toolset=${{ matrix.toolset }} cxxstd=03,11,14,17,2a working-directory: ../boost-root/libs/config/test windows_msvc_14_0: runs-on: windows-2019 defaults: run: shell: cmd strategy: fail-fast: false matrix: toolset: [ msvc-14.0 ] steps: - uses: actions/checkout@v3 with: fetch-depth: '0' - uses: mstachniuk/ci-skip@v1 with: commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[apple];[Apple];[APPLE];[linux];[Linux];[LINUX]' commit-filter-separator: ';' fail-fast: true - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - name: Update Dependencies run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits working-directory: ../boost-root - name: Copy files run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\config working-directory: ../boost-root - name: Bootstrap run: bootstrap working-directory: ../boost-root - name: Generate headers run: b2 headers working-directory: ../boost-root - name: Config info run: ..\..\..\b2 print_config_info cxxstd=14,17 address-model=64 toolset=msvc-14.0 working-directory: ../boost-root/libs/config/test - name: Test run: ..\..\..\b2 --hash address-model=64 cxxstd=14,17 toolset=msvc-14.0 working-directory: ../boost-root/libs/config/test windows_msvc_14_2: runs-on: windows-2019 defaults: run: shell: cmd strategy: fail-fast: false matrix: toolset: [ msvc-14.2 ] steps: - uses: actions/checkout@v3 with: fetch-depth: '0' - uses: mstachniuk/ci-skip@v1 with: commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[apple];[Apple];[APPLE];[linux];[Linux];[LINUX]' commit-filter-separator: ';' fail-fast: true - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - name: Update Dependencies run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits working-directory: ../boost-root - name: Copy files run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\config working-directory: ../boost-root - name: Bootstrap run: bootstrap working-directory: ../boost-root - name: Generate headers run: b2 headers working-directory: ../boost-root - name: Config info run: ..\..\..\b2 print_config_info cxxstd=14,17,latest address-model=64 toolset=msvc-14.2 working-directory: ../boost-root/libs/config/test - name: Test run: ..\..\..\b2 --hash address-model=64 cxxstd=14,17,latest toolset=msvc-14.2 working-directory: ../boost-root/libs/config/test windows_msvc_14_3: runs-on: windows-2022 defaults: run: shell: cmd strategy: fail-fast: false matrix: toolset: [ msvc-14.3 ] steps: - uses: actions/checkout@v3 with: fetch-depth: '0' - uses: mstachniuk/ci-skip@v1 with: commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[apple];[Apple];[APPLE];[linux];[Linux];[LINUX]' commit-filter-separator: ';' fail-fast: true - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - name: Update Dependencies run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits working-directory: ../boost-root - name: Copy files run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\config working-directory: ../boost-root - name: Bootstrap run: bootstrap working-directory: ../boost-root - name: Generate headers run: b2 headers working-directory: ../boost-root - name: Config info run: ..\..\..\b2 print_config_info cxxstd=14,17,latest address-model=64 toolset=msvc-14.3 working-directory: ../boost-root/libs/config/test - name: Test run: ..\..\..\b2 --hash address-model=64 cxxstd=14,17,latest toolset=msvc-14.3 working-directory: ../boost-root/libs/config/test windows_clang_msvc_14_3: runs-on: windows-2022 defaults: run: shell: cmd strategy: fail-fast: false matrix: toolset: [ clang-msvc-14.3 ] steps: - uses: actions/checkout@v3 with: fetch-depth: '0' - uses: mstachniuk/ci-skip@v1 with: commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[apple];[Apple];[APPLE];[linux];[Linux];[LINUX]' commit-filter-separator: ';' fail-fast: true - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - name: Update Dependencies run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits working-directory: ../boost-root - name: Copy files run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\config working-directory: ../boost-root - name: Bootstrap run: bootstrap working-directory: ../boost-root - name: Generate headers run: b2 headers working-directory: ../boost-root - name: Config info run: ..\..\..\b2 print_config_info cxxstd=14,17,latest address-model=64 toolset=clang-win embed-manifest-via=linker working-directory: ../boost-root/libs/config/test - name: Test run: ..\..\..\b2 --hash address-model=64 cxxstd=14,17,latest toolset=clang-win embed-manifest-via=linker working-directory: ../boost-root/libs/config/test non_intel_ubuntu_20_04_gcc: runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: qemu_arch: [ aarch64, s390x, ppc64le ] steps: - uses: actions/checkout@v3 - uses: uraimo/run-on-arch-action@v2 name: Run commands id: runcmd with: arch: ${{ matrix.qemu_arch }} distro: ubuntu20.04 # Not required, but speeds up builds by storing container images in # a GitHub package registry. #githubToken: ${{ github.token }} # Set an output parameter `uname` for use in subsequent steps run: | uname -a apt update apt -y install gcc g++ git python echo $PWD config=$PWD cd .. git clone -b develop --depth 1 https://github.com/boostorg/boost.git boost-root cd boost-root rm -rf libs/config/* cp -r $config/* libs/config git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits ./bootstrap.sh ./b2 headers ./b2 toolset=gcc libs/config/test//print_config_info libs/config/test//print_math_info cd libs/config/test && ../../../b2 toolset=gcc cxxstd=03,11,14,17 non_intel_ubuntu_20_04_clang: runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: qemu_arch: [ aarch64, ppc64le ] steps: - uses: actions/checkout@v3 - uses: uraimo/run-on-arch-action@v2 name: Run commands id: runcmd with: arch: ${{ matrix.qemu_arch }} distro: ubuntu20.04 # Not required, but speeds up builds by storing container images in # a GitHub package registry. #githubToken: ${{ github.token }} # Set an output parameter `uname` for use in subsequent steps run: | uname -a apt update apt -y install clang gcc g++ git python echo $PWD config=$PWD cd .. git clone -b develop --depth 1 https://github.com/boostorg/boost.git boost-root cd boost-root rm -rf libs/config/* cp -r $config/* libs/config git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits ./bootstrap.sh ./b2 headers ./b2 toolset=clang libs/config/test//print_config_info libs/config/test//print_math_info cd libs/config/test ../../../b2 toolset=clang cxxstd=03,11,14,17 emscripten_wasm: runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: compiler: [ emcc ] steps: - uses: actions/checkout@v3 with: fetch-depth: '0' - uses: mstachniuk/ci-skip@v1 with: commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]' commit-filter-separator: ';' fail-fast: true - name: Install Emscripten run: | uname -a echo $PWD config=$PWD cd .. git clone https://github.com/emscripten-core/emsdk.git cd emsdk git pull ./emsdk install latest ./emsdk activate latest source ./emsdk_env.sh - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - name: Update Dependencies run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits working-directory: ../boost-root - name: Copy files run: cp -r $GITHUB_WORKSPACE/* libs/config working-directory: ../boost-root - name: Bootstrap run: ./bootstrap.sh working-directory: ../boost-root - name: Generate headers run: ./b2 headers working-directory: ../boost-root - name: Test config_info (default) working-directory: ../boost-root run: | source ../emsdk/emsdk_env.sh emcc -I. -O3 -o config_info libs/config/test/config_info.cpp node config_info - name: Test config_test (default) working-directory: ../boost-root run: | source ../emsdk/emsdk_env.sh emcc -s EXIT_RUNTIME=1 -s DISABLE_EXCEPTION_CATCHING=0 -I. -O3 -o config_test libs/config/test/config_test.cpp node config_test - name: Test config_info (-fno-exceptions) working-directory: ../boost-root run: | source ../emsdk/emsdk_env.sh emcc -I. -O3 -fno-exceptions -o config_info libs/config/test/config_info.cpp node config_info - name: Test config_test (-fno-exceptions) working-directory: ../boost-root run: | source ../emsdk/emsdk_env.sh emcc -s EXIT_RUNTIME=1 -fno-exceptions -I. -O3 -o config_test libs/config/test/config_test.cpp node config_test - name: Test config_info (pthread) working-directory: ../boost-root run: | source ../emsdk/emsdk_env.sh emcc -pthread -s EXIT_RUNTIME=1 -s PTHREAD_POOL_SIZE=32 -I. -O3 -o config_info_pthread libs/config/test/config_info.cpp node --experimental-wasm-threads --experimental-wasm-bulk-memory config_info_pthread - name: Test config_test (pthread) working-directory: ../boost-root run: | source ../emsdk/emsdk_env.sh emcc -pthread -s EXIT_RUNTIME=1 -s PTHREAD_POOL_SIZE=32 -s DISABLE_EXCEPTION_CATCHING=0 -I. -O3 -o config_test_pthread libs/config/test/config_test.cpp node --experimental-wasm-threads --experimental-wasm-bulk-memory config_test_pthread ubuntu-cuda: runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: std: [ 11, 14, 17 ] steps: - uses: actions/checkout@v3 with: fetch-depth: '0' - uses: mstachniuk/ci-skip@v1 with: commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]' commit-filter-separator: ';' fail-fast: true - uses: Jimver/cuda-toolkit@v0.2.4 - name: Add repository run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test" - name: Install packages run: sudo apt install g++-11 clang-11 - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - name: Update Dependencies run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits working-directory: ../boost-root - name: Copy files run: cp -r $GITHUB_WORKSPACE/* libs/config working-directory: ../boost-root - name: Bootstrap run: ./bootstrap.sh working-directory: ../boost-root - name: Generate headers run: ./b2 headers working-directory: ../boost-root - name: nvcc version run: nvcc --version working-directory: ../boost-root/libs/config/test - name: Config info nvcc run: nvcc -std=c++${{ matrix.std }} -o config_info -I../../.. config_info.cpp && ./config_info working-directory: ../boost-root/libs/config/test - name: Config_test nvcc run: nvcc -std=c++${{ matrix.std }} -o config_test -I../../.. config_test.cpp && ./config_test working-directory: ../boost-root/libs/config/test - name: Config_test nvcc-cuda run: nvcc -c -std=c++${{ matrix.std }} -I../../.. config_test.cu working-directory: ../boost-root/libs/config/test - name: Config info nvcc+clang run: nvcc -std=c++${{ matrix.std }} --compiler-bindir=clang++ -o config_info -I../../.. config_info.cpp && ./config_info working-directory: ../boost-root/libs/config/test - name: Config_test nvcc+clang run: nvcc -std=c++${{ matrix.std }} --compiler-bindir=clang++ -o config_test -I../../.. config_test.cpp -latomic && ./config_test working-directory: ../boost-root/libs/config/test - name: Config_test nvcc-cuda+clang run: nvcc -c -std=c++${{ matrix.std }} --compiler-bindir=clang++ -I../../.. config_test.cu working-directory: ../boost-root/libs/config/test - name: Config_test clang-cuda run: clang++ -nocudalib --no-cuda-version-check -c --cuda-gpu-arch=sm_75 -std=c++${{ matrix.std }} -I../../.. config_test.cu working-directory: ../boost-root/libs/config/test