mirror of
https://github.com/boostorg/process.git
synced 2026-01-19 16:32:15 +00:00
The Ubuntu 20.04 image on GitHub Actions has been unavailable since 2025-04-15. See <https://github.com/actions/runner-images/issues/11101> for more information on the deprecation and removal. Therefore all build jobs that use the Ubuntu 20.04 runner image of GHA will fail and have to be replaced by newer images or have to move into Ubuntu 20.04 containers.
194 lines
7.9 KiB
YAML
194 lines
7.9 KiB
YAML
name: CI
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- master
|
|
- develop
|
|
- feature/**
|
|
|
|
env:
|
|
UBSAN_OPTIONS: print_stacktrace=1
|
|
|
|
jobs:
|
|
posix:
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- { toolset: gcc-5, cxxstd: "11,14,1z", os: ubuntu-latest, container: 'ubuntu:18.04', install: g++-5 }
|
|
- { toolset: gcc-6, cxxstd: "11,14,1z", os: ubuntu-latest, container: 'ubuntu:18.04', install: g++-6 }
|
|
- { toolset: gcc-7, cxxstd: "11,14,17", os: ubuntu-latest, container: 'ubuntu:20.04', install: g++-7 }
|
|
- { toolset: gcc-10, cxxstd: "11,14,17,2a", os: ubuntu-22.04, install: g++-10 }
|
|
- { toolset: gcc-12, cxxstd: "11,14,17,20,2b", os: ubuntu-22.04, install: g++-12 }
|
|
- { toolset: clang, compiler: clang++-3.9, cxxstd: "11,14", os: ubuntu-latest, container: 'ubuntu:18.04', install: clang-3.9 }
|
|
- { toolset: clang, compiler: clang++-4.0, cxxstd: "11,14", os: ubuntu-latest, container: 'ubuntu:18.04', install: clang-4.0 }
|
|
- { toolset: clang, compiler: clang++-5.0, cxxstd: "11,14,1z", os: ubuntu-latest, container: 'ubuntu:18.04', install: clang-5.0 }
|
|
- { toolset: clang, compiler: clang++-6.0, cxxstd: "11,14,17", os: ubuntu-latest, container: 'ubuntu:20.04', install: clang-6.0 }
|
|
- { toolset: clang, compiler: clang++-7, cxxstd: "11,14,17", os: ubuntu-latest, container: 'ubuntu:20.04', install: clang-7 }
|
|
- { toolset: clang, compiler: clang++-8, cxxstd: "11,14,17", os: ubuntu-latest, container: 'ubuntu:20.04', install: clang-8 }
|
|
- { toolset: clang, compiler: clang++-9, cxxstd: "11,14,17,2a", os: ubuntu-latest, container: 'ubuntu:20.04', install: clang-9 }
|
|
- { toolset: clang, compiler: clang++-10, cxxstd: "11,14,17,2a", os: ubuntu-latest, container: 'ubuntu:20.04', install: clang-10 }
|
|
- { toolset: clang, compiler: clang++-11, cxxstd: "11,14,17,2a", os: ubuntu-22.04, install: clang-11 }
|
|
- { toolset: clang, compiler: clang++-12, cxxstd: "11,14,17,2a", os: ubuntu-22.04, install: clang-12 }
|
|
- { toolset: clang, compiler: clang++-13, cxxstd: "11,14,17,20,2b", os: ubuntu-22.04, install: clang-13 }
|
|
- { toolset: clang, compiler: clang++-14, cxxstd: "11,14,17,20,2b", os: ubuntu-22.04, install: clang-14 }
|
|
- { toolset: clang, cxxstd: "11,14,17,2a", os: macos-13 }
|
|
|
|
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
|
|
if [[ "${{matrix.container}}" == "ubuntu:1"* ]]; then
|
|
# Node 20 doesn't work with Ubuntu 16/18 glibc: https://github.com/actions/checkout/issues/1590
|
|
curl -sL https://archives.boost.io/misc/node/node-v20.9.0-linux-x64-glibc-217.tar.xz | tar -xJ --strip-components 1 -C /node20217
|
|
fi
|
|
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install packages
|
|
if: matrix.install
|
|
run: sudo apt-get -y install ${{matrix.install}}
|
|
|
|
- name: Setup Boost
|
|
run: |
|
|
echo GITHUB_REPOSITORY: $GITHUB_REPOSITORY
|
|
LIBRARY=${GITHUB_REPOSITORY#*/}
|
|
echo LIBRARY: $LIBRARY
|
|
echo "LIBRARY=$LIBRARY" >> $GITHUB_ENV
|
|
echo GITHUB_BASE_REF: $GITHUB_BASE_REF
|
|
echo GITHUB_REF: $GITHUB_REF
|
|
REF=${GITHUB_BASE_REF:-$GITHUB_REF}
|
|
REF=${REF#refs/heads/}
|
|
echo REF: $REF
|
|
BOOST_BRANCH=develop && [ "$REF" == "master" ] && BOOST_BRANCH=master || true
|
|
echo BOOST_BRANCH: $BOOST_BRANCH
|
|
cd ..
|
|
git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
|
|
cd boost-root
|
|
cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY
|
|
git submodule update --init tools/boostdep
|
|
python3 tools/boostdep/depinst/depinst.py --git_args "--jobs 3" $LIBRARY
|
|
./bootstrap.sh
|
|
./b2 -d0 headers
|
|
|
|
- name: Create user-config.jam
|
|
if: matrix.compiler
|
|
run: |
|
|
echo "using ${{matrix.toolset}} : : ${{matrix.compiler}} ;" > ~/user-config.jam
|
|
|
|
- name: Run tests
|
|
run: |
|
|
cd ../boost-root
|
|
./b2 -j3 libs/$LIBRARY/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} variant=debug,release
|
|
|
|
alpine-linux:
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: alpine:3.20.1
|
|
steps:
|
|
- name: Install packages
|
|
run: apk add g++ git python3 linux-headers
|
|
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup Boost
|
|
run: |
|
|
echo GITHUB_REPOSITORY: $GITHUB_REPOSITORY
|
|
LIBRARY=${GITHUB_REPOSITORY#*/}
|
|
echo LIBRARY: $LIBRARY
|
|
echo "LIBRARY=$LIBRARY" >> $GITHUB_ENV
|
|
echo GITHUB_BASE_REF: $GITHUB_BASE_REF
|
|
echo GITHUB_REF: $GITHUB_REF
|
|
REF=${GITHUB_BASE_REF:-$GITHUB_REF}
|
|
REF=${REF#refs/heads/}
|
|
echo REF: $REF
|
|
BOOST_BRANCH=develop && [ "$REF" == "master" ] && BOOST_BRANCH=master || true
|
|
echo BOOST_BRANCH: $BOOST_BRANCH
|
|
cd ..
|
|
git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
|
|
cd boost-root
|
|
cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY
|
|
git submodule update --init tools/boostdep
|
|
python3 tools/boostdep/depinst/depinst.py --git_args "--jobs 3" $LIBRARY
|
|
./bootstrap.sh
|
|
./b2 -d0 headers
|
|
|
|
- name: Run tests
|
|
run: |
|
|
cd ../boost-root
|
|
./b2 -j3 libs/$LIBRARY/test toolset=gcc cxxstd=23 variant=debug,release
|
|
|
|
windows:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- toolset: msvc-14.0
|
|
cxxstd: "14,latest"
|
|
addrmd: 32,64
|
|
os: windows-2019
|
|
- toolset: msvc-14.2
|
|
cxxstd: "14,17,20,latest"
|
|
addrmd: 32,64
|
|
os: windows-2019
|
|
- toolset: msvc-14.3
|
|
cxxstd: "14,17,20,latest"
|
|
addrmd: 32,64
|
|
os: windows-2022
|
|
- toolset: clang-win
|
|
cxxstd: "14,17,latest"
|
|
addrmd: 32,64
|
|
os: windows-2022
|
|
- toolset: gcc
|
|
cxxstd: "11,14,17,2a"
|
|
addrmd: 64
|
|
os: windows-2019
|
|
|
|
runs-on: ${{matrix.os}}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup Boost
|
|
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/boostdep
|
|
python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" %LIBRARY%
|
|
cmd /c bootstrap
|
|
b2 -d0 headers
|
|
|
|
- name: Run tests
|
|
shell: cmd
|
|
run: |
|
|
cd ../boost-root
|
|
b2 -j3 libs/%LIBRARY%/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} address-model=${{matrix.addrmd}} variant=debug,release embed-manifest-via=linker
|