############################################################################## # GitHub Actions Workflow for Boost.Geometry to build minimal tests with Clang # # Copyright (c) 2020 Mateusz Loskot # Copyright (c) 2020-2021 Adam Wulkiewicz, Lodz, Poland # # Copyright (c) 2022-2025 Oracle and/or its affiliates. # Contributed and/or modified by Vissarion Fysikopoulos, on behalf of Oracle # # Use, modification and distribution is 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) ############################################################################## name: minimal on: [push, pull_request] jobs: ############################################################################## clang: name: ${{ matrix.b2_toolset }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: b2_toolset: [ clang-6.0, clang-7, clang-8, clang-9, clang-10, clang-11, clang-12, clang-13, clang-14 ] include: - b2_toolset: clang-6.0 b2_cxxstd: 14 version: "6.0" os: ubuntu-22.04 - b2_toolset: clang-7 b2_cxxstd: 14,17 version: "7" os: ubuntu-22.04 - b2_toolset: clang-8 b2_cxxstd: 14,17 version: "8" os: ubuntu-22.04 - b2_toolset: clang-9 # At some point compilation started to fail with 2a from unknown reason # It may have something to do with the std library #b2_cxxstd: 14,17,2a b2_cxxstd: 14,17 version: "9" os: ubuntu-22.04 - b2_toolset: clang-10 b2_cxxstd: 14,17,2a version: "10" os: ubuntu-22.04 - b2_toolset: clang-11 b2_cxxstd: 14,17,2a version: "11" os: ubuntu-22.04 - b2_toolset: clang-12 b2_cxxstd: 14,17,2a version: "12" os: ubuntu-22.04 - b2_toolset: clang-13 b2_cxxstd: 14,17,2a version: "13" os: ubuntu-22.04 - b2_toolset: clang-14 b2_cxxstd: 14,17,2a version: "14" os: ubuntu-22.04 steps: - name: Set up environment id: setenv run: | if [[ "$GITHUB_REF" == *master ]]; then echo "BOOST_BRANCH=master" >> $GITHUB_ENV else echo "BOOST_BRANCH=develop" >> $GITHUB_ENV fi echo "BOOST_SELF=$(basename $GITHUB_WORKSPACE)" >> $GITHUB_ENV echo "BOOST_ROOT=$GITHUB_WORKSPACE/boost-root" >> $GITHUB_ENV echo "boost_self=$(basename $GITHUB_WORKSPACE)" >> "$GITHUB_OUTPUT" echo "boost_root=$GITHUB_WORKSPACE/boost-root" >> "$GITHUB_OUTPUT" - name: Clone boostorg/boost run: | git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git $BOOST_ROOT cd $BOOST_ROOT git submodule update -q --init libs/headers git submodule update -q --init tools/boost_install git submodule update -q --init tools/boostdep git submodule update -q --init tools/build mkdir -p libs/$BOOST_SELF - uses: actions/checkout@v2 with: path: ${{ steps.setenv.outputs.boost_root }}/libs/${{ steps.setenv.outputs.boost_self }} - name: Run tools/boostdep/depinst/depinst.py run: | cd $BOOST_ROOT python tools/boostdep/depinst/depinst.py --include benchmark --include example --include examples --include tools $BOOST_SELF - name: Install run: | # Required for compilers not available in ubuntu 22.04 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32 sudo add-apt-repository "deb http://dk.archive.ubuntu.com/ubuntu/ focal main" sudo add-apt-repository "deb http://dk.archive.ubuntu.com/ubuntu/ focal universe" sudo apt -q -y update sudo apt -q -y install clang-${{ matrix.version }} g++-multilib - name: Bootstrap boostorg/boost run: | gcc --version cd $BOOST_ROOT ./bootstrap.sh --with-toolset=gcc ./b2 headers test -f /usr/local/bin/b2 && rm -rf /usr/local/bin/b2 test -f /usr/local/bin/bjam && rm -rf /usr/local/bin/bjam sudo cp $BOOST_ROOT/b2 /usr/local/bin/ ls -l /usr/local/bin/b2 b2 -v - name: Set up clang toolset in ~/user-config.jam run: | export CXX_NAME=clang++-${{ matrix.version }} echo ${CXX_NAME} echo "# $HOME/user-config.jam" > $HOME/user-config.jam echo "using clang : : $(which clang++-${{ matrix.version }}) ;" > ${HOME}/user-config.jam test -f $HOME/user-config.jam && cat $HOME/user-config.jam - name: Build libs/geometry/test//minimal run: | cd $BOOST_ROOT $BOOST_ROOT/b2 toolset=clang cxxstd=${{ matrix.b2_cxxstd }} variant=debug,release address-model=32,64 libs/geometry/test//minimal ############################################################################## gcc: name: ${{ matrix.b2_toolset }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: b2_toolset: [ gcc-7, gcc-8, gcc-9, gcc-10, gcc-11 ] include: - b2_toolset: gcc-7 b2_cxxstd: 14,17 version: "7" os: ubuntu-22.04 - b2_toolset: gcc-8 b2_cxxstd: 14,17 version: "8" os: ubuntu-22.04 - b2_toolset: gcc-9 b2_cxxstd: 14,17,2a version: "9" os: ubuntu-22.04 - b2_toolset: gcc-10 b2_cxxstd: 14,17,2a version: "10" os: ubuntu-22.04 - b2_toolset: gcc-11 b2_cxxstd: 14,17,2a version: "11" os: ubuntu-22.04 steps: - name: Set up environment id: setenv run: | if [[ "$GITHUB_REF" == *master ]]; then echo "BOOST_BRANCH=master" >> $GITHUB_ENV else echo "BOOST_BRANCH=develop" >> $GITHUB_ENV fi echo "BOOST_SELF=$(basename $GITHUB_WORKSPACE)" >> $GITHUB_ENV echo "BOOST_ROOT=$GITHUB_WORKSPACE/boost-root" >> $GITHUB_ENV echo "boost_self=$(basename $GITHUB_WORKSPACE)" >> "$GITHUB_OUTPUT" echo "boost_root=$GITHUB_WORKSPACE/boost-root" >> "$GITHUB_OUTPUT" - name: Clone boostorg/boost run: | git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git $BOOST_ROOT cd $BOOST_ROOT git submodule update -q --init libs/headers git submodule update -q --init tools/boost_install git submodule update -q --init tools/boostdep git submodule update -q --init tools/build mkdir -p libs/$BOOST_SELF - uses: actions/checkout@v2 with: path: ${{ steps.setenv.outputs.boost_root }}/libs/${{ steps.setenv.outputs.boost_self }} - name: Run tools/boostdep/depinst/depinst.py run: | cd $BOOST_ROOT python tools/boostdep/depinst/depinst.py --include benchmark --include example --include examples --include tools $BOOST_SELF - name: Install run: | # Required for compilers not available in ubuntu 22.04 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32 sudo add-apt-repository "deb http://dk.archive.ubuntu.com/ubuntu/ focal main" sudo add-apt-repository "deb http://dk.archive.ubuntu.com/ubuntu/ focal universe" sudo apt -q -y update sudo apt -q -y install g++-${{ matrix.version }} g++-${{ matrix.version }}-multilib - name: Bootstrap boostorg/boost run: | gcc --version cd $BOOST_ROOT ./bootstrap.sh --with-toolset=gcc ./b2 headers test -f /usr/local/bin/b2 && rm -rf /usr/local/bin/b2 test -f /usr/local/bin/bjam && rm -rf /usr/local/bin/bjam sudo cp $BOOST_ROOT/b2 /usr/local/bin/ ls -l /usr/local/bin/b2 b2 -v - name: Build libs/geometry/test//minimal run: | cd $BOOST_ROOT $BOOST_ROOT/b2 toolset=${{ matrix.b2_toolset }} cxxstd=${{ matrix.b2_cxxstd }} variant=debug,release address-model=32,64 libs/geometry/test//minimal ############################################################################## msvc: name: ${{ matrix.b2_toolset }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: b2_toolset: [ msvc-14.3, msvc-14.4 ] include: - b2_toolset: msvc-14.3 b2_cxxstd: 14,17,2a os: windows-2022 - b2_toolset: msvc-14.4 b2_cxxstd: 14,17,2a os: windows-2022 steps: - name: Set up environment id: setenv shell: pwsh run: | if ("$env:GITHUB_REF" -contains "master") { echo "BOOST_BRANCH=master" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append } else { echo "BOOST_BRANCH=develop" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append } echo "BOOST_SELF=$((Get-Item $env:GITHUB_WORKSPACE).BaseName)" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append echo "BOOST_ROOT=$env:GITHUB_WORKSPACE\boost-root" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append echo "boost_self=$((Get-Item $env:GITHUB_WORKSPACE).BaseName)" | Out-File -FilePath $Env:GITHUB_OUTPUT -Encoding utf8 -Append echo "boost_root=$env:GITHUB_WORKSPACE\boost-root" | Out-File -FilePath $Env:GITHUB_OUTPUT -Encoding utf8 -Append - name: Clone boostorg/boost shell: pwsh run: | git clone -b $env:BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git $env:BOOST_ROOT cd $env:BOOST_ROOT git submodule update -q --init libs/headers git submodule update -q --init tools/boost_install git submodule update -q --init tools/boostdep git submodule update -q --init tools/build New-Item -Path libs\$env:BOOST_SELF -ItemType Directory -ErrorAction SilentlyContinue - uses: actions/checkout@v2 with: path: ${{ steps.setenv.outputs.boost_root }}/libs/${{ steps.setenv.outputs.boost_self }} - name: Run tools/boostdep/depinst/depinst.py shell: pwsh run: | cd $env:BOOST_ROOT python tools/boostdep/depinst/depinst.py --include benchmark --include example --include examples --include tools $env:BOOST_SELF - name: Bootstrap boostorg/boost shell: pwsh run: | cd $env:BOOST_ROOT .\bootstrap.bat --with-toolset=${{ matrix.b2_toolset }} .\b2 headers .\b2 -v - name: Build libs/geometry/test//minimal shell: pwsh run: | cd $env:BOOST_ROOT .\b2 toolset=${{ matrix.b2_toolset }} cxxstd=${{ matrix.b2_cxxstd }} variant=debug,release address-model=32,64 libs/geometry/test//minimal