name: GitHub Actions CI on: pull_request: push: branches: - master - develop - githubactions* - feature/** - fix/** - pr/** jobs: posix: strategy: fail-fast: false matrix: include: - name: "gcc 4.7" buildtype: "boost" packages: "g++-4.7" os: "ubuntu-latest" container: "ubuntu:16.04" llvm_os: "" llvm_ver: "" toolset: "gcc" compiler: "g++-4.7" cxxstd: "11" - name: "gcc 4.8" packages: "g++-4.8" os: "ubuntu-latest" container: "ubuntu:16.04" llvm_os: "" llvm_ver: "" toolset: "gcc" compiler: "g++-4.8" cxxstd: "11" - name: "gcc 4.9" packages: "g++-4.9" os: "ubuntu-latest" container: "ubuntu:16.04" llvm_os: "" llvm_ver: "" toolset: "gcc" compiler: "g++-4.9" cxxstd: "11" - name: "gcc 5" packages: "g++-5" os: "ubuntu-latest" container: "ubuntu:16.04" llvm_os: "" llvm_ver: "" toolset: "gcc" compiler: "g++-5" cxxstd: "11,14,1z" - name: "gcc 6" packages: "g++-6" os: "ubuntu-latest" container: "ubuntu:18.04" llvm_os: "" llvm_ver: "" toolset: "gcc" compiler: "g++-6" cxxstd: "11,14,1z" - name: "gcc 7" packages: "g++-7" os: "ubuntu-latest" container: "ubuntu:18.04" llvm_os: "" llvm_ver: "" toolset: "gcc" compiler: "g++-7" cxxstd: "11,14,1z,17" - name: "gcc 8" packages: "g++-8" os: "ubuntu-latest" container: "ubuntu:18.04" llvm_os: "" llvm_ver: "" toolset: "gcc" compiler: "g++-8" cxxstd: "11,14,1z,17,2a" - name: "gcc 9" packages: "g++-9" os: "ubuntu-latest" container: "ubuntu:20.04" llvm_os: "" llvm_ver: "" toolset: "gcc" compiler: "g++-9" cxxstd: "11,14,17,2a" - name: "gcc 10" packages: "g++-10" os: "ubuntu-latest" container: "ubuntu:20.04" llvm_os: "" llvm_ver: "" toolset: "gcc" compiler: "g++-10" cxxstd: "11,14,17,20" - name: "clang 3.5" packages: "clang-3.5" os: "ubuntu-latest" container: "ubuntu:16.04" llvm_os: "precise" llvm_ver: "3.5" toolset: "clang" compiler: "clang++-3.5" cxxstd: "11" - name: "clang 3.6" packages: "clang-3.6" os: "ubuntu-latest" container: "ubuntu:16.04" llvm_os: "precise" llvm_ver: "3.6" toolset: "clang" compiler: "clang++-3.6" cxxstd: "11" - name: "clang 3.7" packages: "clang-3.7" os: "ubuntu-latest" container: "ubuntu:16.04" llvm_os: "precise" llvm_ver: "3.7" toolset: "clang" compiler: "clang++-3.7" cxxstd: "11" - name: "clang 3.8" packages: "clang-3.8 libstdc++-4.9-dev" os: "ubuntu-latest" container: "ubuntu:16.04" llvm_os: "precise" llvm_ver: "3.8" toolset: "clang" compiler: "clang++-3.8" cxxstd: "11,14" - name: "clang 3.9" packages: "clang-3.9 libstdc++-4.9-dev" os: "ubuntu-latest" container: "ubuntu:16.04" llvm_os: "precise" llvm_ver: "3.9" toolset: "clang" compiler: "clang++-3.9" cxxstd: "11,14" - name: "clang 4.0" packages: "clang-4.0" os: "ubuntu-latest" container: "ubuntu:16.04" llvm_os: "xenial" llvm_ver: "4.0" toolset: "clang" compiler: "clang++-4.0" cxxstd: "11,14" - name: "clang 5.0" packages: "clang-5.0" os: "ubuntu-latest" container: "ubuntu:16.04" llvm_os: "" llvm_ver: "" toolset: "clang" compiler: "clang++-5.0" cxxstd: "11,14,1z,17" - name: "clang 6.0" packages: "clang-6.0" os: "ubuntu-latest" container: "ubuntu:16.04" llvm_os: "" llvm_ver: "" toolset: "clang" compiler: "clang++-6.0" cxxstd: "11,14,1z,17,2a" - name: "clang 7" packages: "clang-7" os: "ubuntu-latest" container: "ubuntu:20.04" llvm_os: "xenial" llvm_ver: "7" toolset: "clang" compiler: "clang++-7" cxxstd: "11,14,1z,17" - name: "clang 8" packages: "clang-8" os: "ubuntu-latest" container: "ubuntu:20.04" llvm_os: "xenial" llvm_ver: "8" toolset: "clang" compiler: "clang++-8" cxxstd: "11,14,17" - name: "clang 9" packages: "clang-9" os: "ubuntu-latest" container: "ubuntu:20.04" llvm_os: "focal" llvm_ver: "9" toolset: "clang" compiler: "clang++-9" cxxstd: "11,14,17,2a" - name: "clang 10" packages: "clang-10" os: "ubuntu-latest" container: "ubuntu:20.04" llvm_os: "focal" llvm_ver: "10" toolset: "clang" compiler: "clang++-10" cxxstd: "11,14,17,20" - name: "clang 11" packages: "clang-11" os: "ubuntu-latest" container: "ubuntu:20.04" sources: "" llvm_os: "focal" llvm_ver: "11" toolset: "clang" compiler: "clang++-11" cxxstd: "11,14,17,20,latest" - name: "clang 12" packages: "clang-12" os: "ubuntu-latest" container: "ubuntu:20.04" sources: "" llvm_os: "focal" llvm_ver: "12" toolset: "clang" compiler: "clang++-12" cxxstd: "11,14,17,20,latest" runs-on: ${{ matrix.os }} container: image: ${{matrix.container}} volumes: - /node20217:/node20217:rw,rshared - ${{ startsWith(matrix.container, 'ubuntu:1') && '/node20217:/__e/node20:ro,rshared' || ' ' }} steps: - name: Setup container environment if: matrix.container run: | apt-get update apt-get -y install sudo python3 git g++ curl xz-utils - name: Install nodejs20glibc2.17 if: ${{ startsWith( matrix.container, 'ubuntu:1' ) }} run: | curl -LO https://archives.boost.io/misc/node/node-v20.9.0-linux-x64-glibc-217.tar.xz tar -xf node-v20.9.0-linux-x64-glibc-217.tar.xz --strip-components 1 -C /node20217 ldd /__e/node20/bin/node - name: Install packages if: matrix.packages run: sudo apt-get -y install ${{matrix.packages}} - uses: actions/checkout@v2 - name: linux shell: bash env: CXX: ${{ matrix.compiler }} SOURCES: ${{ matrix.sources }} LLVM_OS: ${{ matrix.llvm_os }} LLVM_VER: ${{ matrix.llvm_ver }} PACKAGES: ${{ matrix.packages }} TOOLSET: ${{ matrix.toolset }} CXXSTD: ${{ matrix.cxxstd }} TRAVIS_BRANCH: ${{ github.base_ref }} TRAVIS_OS_NAME: "linux" run: | set -e export TRAVIS_BUILD_DIR=$(pwd) export TRAVIS_BRANCH=${TRAVIS_BRANCH:-$(echo $GITHUB_REF | awk 'BEGIN { FS = "/" } ; { print $3 }')} export VCS_COMMIT_ID=$GITHUB_SHA export GIT_COMMIT=$GITHUB_SHA export REPO_NAME=$(basename $GITHUB_REPOSITORY) export USER=$(whoami) export CC=${CC:-gcc} export PATH=~/.local/bin:/usr/local/bin:$PATH BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true cd .. git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root cd boost-root git submodule update --init tools/build git submodule update --init tools/boost_install git submodule update --init libs/config git submodule update --init libs/headers mkdir -p libs/callable_traits cp -r $TRAVIS_BUILD_DIR/* libs/callable_traits ./bootstrap.sh ./b2 headers echo "using $TOOLSET : : $CXX : ;" > ~/user-config.jam ./b2 libs/callable_traits/test toolset=$TOOLSET cxxstd=${CXXSTD} && ./b2 libs/callable_traits/example toolset=$TOOLSET cxxstd=${CXXSTD} osx: strategy: fail-fast: false matrix: include: - name: "xcode" os: "macos-15" cxx: "clang++" toolset: "clang" compiler: "clang++" cxxstd: "11,14,17" runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 - name: "osx" shell: bash env: CXX: ${{ matrix.compiler }} TOOLSET: ${{ matrix.toolset }} CXXSTD: ${{ matrix.cxxstd }} TRAVIS_BRANCH: ${{ github.base_ref }} TRAVIS_OS_NAME: "osx" run: | set -e sudo mv /Library/Developer/CommandLineTools /Library/Developer/CommandLineTools.bck export TRAVIS_BUILD_DIR=$(pwd) export TRAVIS_BRANCH=${TRAVIS_BRANCH:-$(echo $GITHUB_REF | awk 'BEGIN { FS = "/" } ; { print $3 }')} export VCS_COMMIT_ID=$GITHUB_SHA export GIT_COMMIT=$GITHUB_SHA export REPO_NAME=$(basename $GITHUB_REPOSITORY) export USER=$(whoami) export CC=${CC:-gcc} export PATH=~/.local/bin:/usr/local/bin:$PATH BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true cd .. git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root cd boost-root git submodule update --init tools/build git submodule update --init tools/boost_install git submodule update --init libs/config git submodule update --init libs/headers mkdir -p libs/callable_traits cp -r $TRAVIS_BUILD_DIR/* libs/callable_traits ./bootstrap.sh ./b2 headers echo "using $TOOLSET : : $CXX : ;" > ~/user-config.jam ./b2 libs/callable_traits/test toolset=$TOOLSET cxxstd=${CXXSTD} && ./b2 libs/callable_traits/example toolset=$TOOLSET cxxstd=${CXXSTD} windows: strategy: fail-fast: false matrix: include: - toolset: msvc-14.2 cxxstd: "11,14,17,latest" os: windows-2019 - toolset: msvc-14.3 cxxstd: "11,14,17,20,latest" os: windows-2022 runs-on: ${{matrix.os}} steps: - uses: actions/checkout@v2 - name: "windows" shell: cmd run: | echo GITHUB_REPOSITORY: %GITHUB_REPOSITORY% for /f %%i in ("%GITHUB_REPOSITORY%") do set LIBRARY=%%~nxi echo LIBRARY: %LIBRARY% echo LIBRARY=%LIBRARY%>>%GITHUB_ENV% echo GITHUB_BASE_REF: %GITHUB_BASE_REF% echo GITHUB_REF: %GITHUB_REF% if "%GITHUB_BASE_REF%" == "" set GITHUB_BASE_REF=%GITHUB_REF% set BOOST_BRANCH=develop for /f %%i in ("%GITHUB_BASE_REF%") do if "%%~nxi" == "master" set BOOST_BRANCH=master echo BOOST_BRANCH: %BOOST_BRANCH% cd .. git clone -b %BOOST_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root cd boost-root xcopy /s /e /q %GITHUB_WORKSPACE% libs\%LIBRARY%\ git submodule update --init tools/build git submodule update --init tools/boost_install git submodule update --init libs/config git submodule update --init libs/headers cmd /c bootstrap b2 libs\callable_traits\test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} address-model="32,64" && b2 libs\callable_traits\example toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} address-model="32,64"