Fix node 20 issue on GHA CI #132
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Copyright 2020-2021 Peter Dimov | |
# Copyright 2021 Andrey Semashev | |
# Copyright 2021 Alexander Grund | |
# Copyright 2022 James E. King III | |
# | |
# 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: | |
pull_request: | |
push: | |
branches: | |
- master | |
- develop | |
- bugfix/** | |
- feature/** | |
- fix/** | |
- pr/** | |
concurrency: | |
group: ${{format('{0}:{1}', github.repository, github.ref)}} | |
cancel-in-progress: true | |
env: | |
GIT_FETCH_JOBS: 8 | |
NET_RETRY_COUNT: 5 | |
DEFAULT_BUILD_VARIANT: release | |
jobs: | |
posix: | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- toolset: gcc-5 | |
cxxstd: "11" | |
address_model: 64 | |
os: ubuntu-latest | |
container: ubuntu:16.04 | |
install: | |
- g++-5-multilib | |
- toolset: gcc-5 | |
cxxstd: "11-gnu" | |
address_model: 64 | |
os: ubuntu-latest | |
container: ubuntu:16.04 | |
install: | |
- g++-5-multilib | |
- toolset: gcc-6 | |
cxxstd: "11,14" | |
address_model: 64 | |
os: ubuntu-latest | |
container: ubuntu:18.04 | |
install: | |
- g++-6-multilib | |
- toolset: gcc-7 | |
cxxstd: "14,17" | |
address_model: 64 | |
os: ubuntu-latest | |
container: ubuntu:18.04 | |
install: | |
- g++-7-multilib | |
- toolset: gcc-8 | |
cxxstd: "17,2a" | |
address_model: 64 | |
os: ubuntu-latest | |
container: ubuntu:18.04 | |
install: | |
- g++-8-multilib | |
- toolset: gcc-9 | |
cxxstd: "17,2a" | |
address_model: 64 | |
os: ubuntu-20.04 | |
install: | |
- g++-9-multilib | |
- toolset: gcc-9 | |
cxxstd: "17-gnu,2a-gnu" | |
address_model: 64 | |
os: ubuntu-20.04 | |
install: | |
- g++-9-multilib | |
- toolset: gcc-10 | |
cxxstd: "17,20" | |
address_model: 64 | |
os: ubuntu-20.04 | |
install: | |
- g++-10-multilib | |
- toolset: gcc-11 | |
cxxstd: "20,23" | |
address_model: 64 | |
os: ubuntu-22.04 | |
install: | |
- g++-11-multilib | |
- toolset: gcc-12 | |
cxxstd: "20,23" | |
address_model: 64 | |
os: ubuntu-22.04 | |
install: | |
- g++-12-multilib | |
- toolset: gcc-12 | |
cxxstd: "20-gnu,23-gnu" | |
address_model: 64 | |
os: ubuntu-22.04 | |
install: | |
- g++-12-multilib | |
- name: UBSAN | |
toolset: gcc-12 | |
cxxstd: "17" | |
address_model: 64 | |
ubsan: 1 | |
os: ubuntu-22.04 | |
install: | |
- g++-12-multilib | |
# Linux, clang | |
- toolset: clang | |
compiler: clang++-3.8 | |
cxxstd: "11" | |
os: ubuntu-latest | |
container: ubuntu:16.04 | |
install: | |
- clang-3.8 | |
- 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" | |
os: ubuntu-latest | |
container: ubuntu:18.04 | |
install: | |
- clang-4.0 | |
- toolset: clang | |
compiler: clang++-5.0 | |
cxxstd: "11,14" | |
os: ubuntu-latest | |
container: ubuntu:18.04 | |
install: | |
- clang-5.0 | |
- toolset: clang | |
compiler: clang++-6.0 | |
cxxstd: "14,1z" | |
os: ubuntu-latest | |
container: ubuntu:18.04 | |
install: | |
- clang-6.0 | |
- toolset: clang | |
compiler: clang++-7 | |
cxxstd: "14,17" | |
os: ubuntu-latest | |
container: ubuntu:18.04 | |
install: | |
- clang-7 | |
# Note: clang-8 does not fully support C++20, so it is not compatible with libstdc++-8 in this mode | |
- toolset: clang | |
compiler: clang++-8 | |
cxxstd: "14,17" | |
os: ubuntu-latest | |
container: ubuntu:18.04 | |
install: | |
- clang-8 | |
- g++-7 | |
gcc_toolchain: 7 | |
- toolset: clang | |
compiler: clang++-9 | |
cxxstd: "17,2a" | |
os: ubuntu-20.04 | |
install: | |
- clang-9 | |
- toolset: clang | |
compiler: clang++-10 | |
cxxstd: "17,20" | |
os: ubuntu-20.04 | |
install: | |
- clang-10 | |
- toolset: clang | |
compiler: clang++-11 | |
cxxstd: "17" | |
os: ubuntu-22.04 | |
install: | |
- clang-11 | |
- toolset: clang | |
compiler: clang++-12 | |
cxxstd: "17" | |
os: ubuntu-22.04 | |
install: | |
- clang-12 | |
- toolset: clang | |
compiler: clang++-13 | |
cxxstd: "17" | |
os: ubuntu-22.04 | |
install: | |
- clang-13 | |
- toolset: clang | |
compiler: clang++-14 | |
cxxstd: "17" | |
os: ubuntu-22.04 | |
install: | |
- clang-14 | |
- toolset: clang | |
compiler: clang++-14 | |
cxxstd: "17-gnu" | |
os: ubuntu-22.04 | |
install: | |
- clang-14 | |
- toolset: clang | |
compiler: clang++-15 | |
cxxstd: "20" | |
os: ubuntu-22.04 | |
install: | |
- clang-15 | |
sources: | |
- "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-15 main" | |
source_keys: | |
- "https://apt.llvm.org/llvm-snapshot.gpg.key" | |
- toolset: clang | |
compiler: clang++-15 | |
cxxstd: "20" | |
os: ubuntu-22.04 | |
install: | |
- clang-15 | |
- libc++-15-dev | |
- libc++abi-15-dev | |
sources: | |
- "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-15 main" | |
source_keys: | |
- "https://apt.llvm.org/llvm-snapshot.gpg.key" | |
cxxflags: -stdlib=libc++ | |
linkflags: -stdlib=libc++ | |
- name: UBSAN | |
toolset: clang | |
compiler: clang++-14 | |
cxxstd: "17" | |
cxxflags: -stdlib=libc++ | |
linkflags: -stdlib=libc++ | |
ubsan: 1 | |
os: ubuntu-22.04 | |
install: | |
- clang-14 | |
- libc++-14-dev | |
- libc++abi-14-dev | |
- toolset: clang | |
cxxstd: "11,14" | |
os: macos-12 | |
- toolset: clang | |
cxxstd: "20" | |
os: macos-13 | |
- toolset: clang | |
cxxstd: "20" | |
os: macos-14 | |
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 environment | |
run: | | |
if [ -f "/etc/debian_version" ] | |
then | |
echo "DEBIAN_FRONTEND=noninteractive" >> $GITHUB_ENV | |
export DEBIAN_FRONTEND=noninteractive | |
fi | |
if [ -n "${{matrix.container}}" ] | |
then | |
echo "GHA_CONTAINER=${{matrix.container}}" >> $GITHUB_ENV | |
if [ -f "/etc/debian_version" ] | |
then | |
apt-get -o Acquire::Retries=$NET_RETRY_COUNT update | |
if [ "$(apt-cache search "^python-is-python3$" | wc -l)" -ne 0 ] | |
then | |
PYTHON_PACKAGE="python-is-python3" | |
else | |
PYTHON_PACKAGE="python" | |
fi | |
apt-get -o Acquire::Retries=$NET_RETRY_COUNT install -y sudo software-properties-common tzdata wget curl apt-transport-https ca-certificates make build-essential g++ $PYTHON_PACKAGE python3 perl git cmake | |
fi | |
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 | |
fi | |
git config --global pack.threads 0 | |
- uses: actions/checkout@v4 | |
- name: Install packages | |
if: matrix.install | |
run: | | |
declare -a SOURCE_KEYS SOURCES | |
if [ -n "${{join(matrix.source_keys, ' ')}}" ] | |
then | |
SOURCE_KEYS=("${{join(matrix.source_keys, '" "')}}") | |
fi | |
if [ -n "${{join(matrix.sources, ' ')}}" ] | |
then | |
SOURCES=("${{join(matrix.sources, '" "')}}") | |
fi | |
for key in "${SOURCE_KEYS[@]}" | |
do | |
for i in {1..$NET_RETRY_COUNT} | |
do | |
echo "Adding key: $key" | |
wget -O - "$key" | sudo apt-key add - && break || sleep 2 | |
done | |
done | |
if [ ${#SOURCES[@]} -gt 0 ] | |
then | |
APT_ADD_REPO_COMMON_ARGS=("-y") | |
APT_ADD_REPO_SUPPORTED_ARGS="$(apt-add-repository --help | perl -ne 'if (/^\s*-n/) { print "n"; } elsif (/^\s*-P/) { print "P"; } elsif (/^\s*-S/) { print "S"; } elsif (/^\s*-U/) { print "U"; }')" | |
if [ -n "$APT_ADD_REPO_SUPPORTED_ARGS" -a -z "${APT_ADD_REPO_SUPPORTED_ARGS##*n*}" ] | |
then | |
APT_ADD_REPO_COMMON_ARGS+=("-n") | |
fi | |
APT_ADD_REPO_HAS_SOURCE_ARGS="$([ -n "$APT_ADD_REPO_SUPPORTED_ARGS" -a -z "${APT_ADD_REPO_SUPPORTED_ARGS##*P*}" -a -z "${APT_ADD_REPO_SUPPORTED_ARGS##*S*}" -a -z "${APT_ADD_REPO_SUPPORTED_ARGS##*U*}" ] && echo 1 || echo 0)" | |
for source in "${SOURCES[@]}" | |
do | |
for i in {1..$NET_RETRY_COUNT} | |
do | |
APT_ADD_REPO_ARGS=("${APT_ADD_REPO_COMMON_ARGS[@]}") | |
if [ $APT_ADD_REPO_HAS_SOURCE_ARGS -ne 0 ] | |
then | |
case "$source" in | |
"ppa:"*) | |
APT_ADD_REPO_ARGS+=("-P") | |
;; | |
"deb "*) | |
APT_ADD_REPO_ARGS+=("-S") | |
;; | |
*) | |
APT_ADD_REPO_ARGS+=("-U") | |
;; | |
esac | |
fi | |
APT_ADD_REPO_ARGS+=("$source") | |
echo "apt-add-repository ${APT_ADD_REPO_ARGS[@]}" | |
sudo -E apt-add-repository "${APT_ADD_REPO_ARGS[@]}" && break || sleep 2 | |
done | |
done | |
fi | |
sudo apt-get -o Acquire::Retries=$NET_RETRY_COUNT update | |
sudo apt-get -o Acquire::Retries=$NET_RETRY_COUNT install -y ${{join(matrix.install, ' ')}} | |
- name: Setup GCC Toolchain | |
if: matrix.gcc_toolchain | |
run: | | |
GCC_TOOLCHAIN_ROOT="$HOME/gcc-toolchain" | |
echo "GCC_TOOLCHAIN_ROOT=\"$GCC_TOOLCHAIN_ROOT\"" >> $GITHUB_ENV | |
MULTIARCH_TRIPLET="$(dpkg-architecture -qDEB_HOST_MULTIARCH)" | |
mkdir -p "$GCC_TOOLCHAIN_ROOT" | |
ln -s /usr/include "$GCC_TOOLCHAIN_ROOT/include" | |
ln -s /usr/bin "$GCC_TOOLCHAIN_ROOT/bin" | |
mkdir -p "$GCC_TOOLCHAIN_ROOT/lib/gcc/$MULTIARCH_TRIPLET" | |
ln -s "/usr/lib/gcc/$MULTIARCH_TRIPLET/${{matrix.gcc_toolchain}}" "$GCC_TOOLCHAIN_ROOT/lib/gcc/$MULTIARCH_TRIPLET/${{matrix.gcc_toolchain}}" | |
- 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 | |
BUILD_JOBS=$((nproc || sysctl -n hw.ncpu) 2> /dev/null) | |
echo "BUILD_JOBS=$BUILD_JOBS" >> $GITHUB_ENV | |
echo "CMAKE_BUILD_PARALLEL_LEVEL=$BUILD_JOBS" >> $GITHUB_ENV | |
DEPINST_ARGS=() | |
GIT_VERSION="$(git --version | sed -e 's/git version //')" | |
GIT_HAS_JOBS=1 | |
if [ -f "/etc/debian_version" ] | |
then | |
if $(dpkg --compare-versions "$GIT_VERSION" lt 2.8.0) | |
then | |
GIT_HAS_JOBS=0 | |
fi | |
else | |
declare -a GIT_VER=(${GIT_VERSION//./ }) | |
declare -a GIT_MIN_VER=(2 8 0) | |
for ((i=0; i<${#GIT_VER[@]}; i++)) | |
do | |
if [ -z "${GIT_MIN_VER[i]}" ] | |
then | |
GIT_MIN_VER[i]=0 | |
fi | |
if [ "${GIT_VER[i]}" -lt "${GIT_MIN_VER[i]}" ] | |
then | |
GIT_HAS_JOBS=0 | |
break | |
fi | |
done | |
fi | |
if [ "$GIT_HAS_JOBS" -ne 0 ] | |
then | |
DEPINST_ARGS+=("--git_args" "--jobs $GIT_FETCH_JOBS") | |
fi | |
cd .. | |
git clone -b "$BOOST_BRANCH" --depth 1 "https://github.com/boostorg/boost.git" "boost-root" | |
cd boost-root | |
mkdir -p libs/$LIBRARY | |
cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY | |
git submodule update --init tools/boostdep | |
DEPINST_ARGS+=("$LIBRARY") | |
python tools/boostdep/depinst/depinst.py -I doc/examples "${DEPINST_ARGS[@]}" | |
if [ -z "${{matrix.cmake_tests}}" ] | |
then | |
./bootstrap.sh | |
./b2 headers | |
if [ -n "${{matrix.compiler}}" -o -n "$GCC_TOOLCHAIN_ROOT" ] | |
then | |
echo -n "using ${{matrix.toolset}} : : ${{matrix.compiler}}" > ~/user-config.jam | |
if [ -n "$GCC_TOOLCHAIN_ROOT" ] | |
then | |
echo -n " : <compileflags>\"--gcc-toolchain=$GCC_TOOLCHAIN_ROOT\" <linkflags>\"--gcc-toolchain=$GCC_TOOLCHAIN_ROOT\"" >> ~/user-config.jam | |
fi | |
echo " ;" >> ~/user-config.jam | |
fi | |
fi | |
- name: Run tests | |
if: matrix.cmake_tests == '' | |
run: | | |
cd ../boost-root | |
B2_ARGS=("-j" "$BUILD_JOBS" "toolset=${{matrix.toolset}}" "cxxstd=${{matrix.cxxstd}}" "link=static,shared") | |
if [ -n "${{matrix.build_variant}}" ] | |
then | |
B2_ARGS+=("variant=${{matrix.build_variant}}") | |
else | |
B2_ARGS+=("variant=$DEFAULT_BUILD_VARIANT") | |
fi | |
if [ -n "${{matrix.threading}}" ] | |
then | |
B2_ARGS+=("threading=${{matrix.threading}}") | |
fi | |
if [ -n "${{matrix.ubsan}}" ] | |
then | |
export UBSAN_OPTIONS="print_stacktrace=1" | |
B2_ARGS+=("cxxflags=-fsanitize=undefined -fno-sanitize-recover=undefined" "linkflags=-fsanitize=undefined -fuse-ld=gold" "define=UBSAN=1" "debug-symbols=on" "visibility=global") | |
fi | |
if [ -n "${{matrix.cxxflags}}" ] | |
then | |
B2_ARGS+=("cxxflags=${{matrix.cxxflags}}") | |
fi | |
if [ -n "${{matrix.linkflags}}" ] | |
then | |
B2_ARGS+=("linkflags=${{matrix.linkflags}}") | |
fi | |
if [ -n "${{matrix.address_model}}" ] | |
then | |
B2_ARGS+=("address-model=${{matrix.address_model}}") | |
fi | |
B2_ARGS+=("libs/$LIBRARY/test") | |
./b2 "${B2_ARGS[@]}" | |
windows: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- toolset: msvc-14.0 | |
cxxstd: "11" | |
addrmd: 64 | |
os: windows-2019 | |
- toolset: msvc-14.2 | |
cxxstd: "14" | |
addrmd: 64 | |
os: windows-2019 | |
- toolset: msvc-14.3 | |
cxxstd: "20" | |
addrmd: 64 | |
os: windows-2022 | |
- toolset: clang-win | |
cxxstd: "17" | |
addrmd: 64 | |
os: windows-2022 | |
- toolset: gcc | |
cxxstd: "17" | |
addrmd: 64 | |
os: windows-2019 | |
runs-on: ${{matrix.os}} | |
steps: | |
- uses: actions/checkout@v3 | |
- 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 -I doc/examples --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=release link=static,shared embed-manifest-via=linker | |
CMake: | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- { os: ubuntu-20.04, build_shared: ON, build_type: Debug, generator: 'Unix Makefiles' } | |
- { os: ubuntu-20.04, build_shared: OFF, build_type: Debug, generator: 'Unix Makefiles' } | |
- { os: windows-2019, build_shared: ON, build_type: Debug, generator: 'Visual Studio 16 2019' } | |
- { os: windows-2019, build_shared: OFF, build_type: Debug, generator: 'Visual Studio 16 2019' } | |
timeout-minutes: 120 | |
runs-on: ${{matrix.os}} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Fetch Boost.CI | |
uses: actions/checkout@v3 | |
with: | |
repository: boostorg/boost-ci | |
ref: master | |
path: boost-ci-cloned | |
- name: Get CI scripts folder | |
run: | | |
# Copy ci folder if not testing Boost.CI | |
[[ "$GITHUB_REPOSITORY" =~ "boost-ci" ]] || cp -r boost-ci-cloned/ci . | |
rm -rf boost-ci-cloned | |
- name: Setup Boost | |
env: {B2_DONT_BOOTSTRAP: 1} | |
run: source ci/github/install.sh | |
- name: Run CMake tests | |
run: | | |
cd "$BOOST_ROOT" | |
mkdir __build_cmake_test__ && cd __build_cmake_test__ | |
cmake -G "${{matrix.generator}}" -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DBOOST_INCLUDE_LIBRARIES=$SELF -DBUILD_SHARED_LIBS=${{matrix.build_shared}} -DBUILD_TESTING=ON -DBoost_VERBOSE=ON .. | |
cmake --build . --target tests --config ${{matrix.build_type}} -j$B2_JOBS | |
ctest --output-on-failure --build-config ${{matrix.build_type}} | |
- name: Run CMake subdir tests | |
run: | | |
cmake_test_folder="$BOOST_ROOT/libs/$SELF/test/cmake_test" # New unified folder | |
[ -d "$cmake_test_folder" ] || cmake_test_folder="$BOOST_ROOT/libs/$SELF/test/cmake_subdir_test" | |
cd "$cmake_test_folder" | |
mkdir __build_cmake_subdir_test__ && cd __build_cmake_subdir_test__ | |
extra_args="" | |
# On Windows DLLs need to be either in PATH or in the same folder as the executable, so put all binaries into the same folder | |
if [[ "$RUNNER_OS" == "Windows" ]] && [[ "${{matrix.build_shared}}" == "ON" ]]; then | |
extra_args="-DCMAKE_RUNTIME_OUTPUT_DIRECTORY='$(pwd)/bin'" | |
fi | |
cmake -G "${{matrix.generator}}" -DBOOST_CI_INSTALL_TEST=OFF -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DBUILD_SHARED_LIBS=${{matrix.build_shared}} $extra_args .. | |
cmake --build . --config ${{matrix.build_type}} -j$B2_JOBS | |
ctest --output-on-failure --build-config ${{matrix.build_type}} | |
- name: Install Library | |
run: | | |
BCM_INSTALL_PATH=/tmp/boost_install | |
echo "BCM_INSTALL_PATH=$BCM_INSTALL_PATH" >> $GITHUB_ENV | |
cd "$BOOST_ROOT" | |
mkdir __build_cmake_install_test__ && cd __build_cmake_install_test__ | |
cmake -G "${{matrix.generator}}" -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DBOOST_INCLUDE_LIBRARIES=$SELF -DBUILD_SHARED_LIBS=${{matrix.build_shared}} -DCMAKE_INSTALL_PREFIX="$BCM_INSTALL_PATH" -DBoost_VERBOSE=ON -DBoost_DEBUG=ON .. | |
cmake --build . --target install --config ${{matrix.build_type}} -j$B2_JOBS | |
- name: Run CMake install tests | |
run: | | |
cmake_test_folder="$BOOST_ROOT/libs/$SELF/test/cmake_test" # New unified folder | |
[ -d "$cmake_test_folder" ] || cmake_test_folder="$BOOST_ROOT/libs/$SELF/test/cmake_install_test" | |
cd "$cmake_test_folder" | |
mkdir __build_cmake_install_test__ && cd __build_cmake_install_test__ | |
cmake -G "${{matrix.generator}}" -DBOOST_CI_INSTALL_TEST=ON -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DBUILD_SHARED_LIBS=${{matrix.build_shared}} -DCMAKE_PREFIX_PATH="$BCM_INSTALL_PATH" .. | |
cmake --build . --config ${{matrix.build_type}} -j$B2_JOBS | |
if [[ "${{matrix.build_shared}}" == "ON" ]]; then | |
# Make sure shared libs can be found at runtime | |
if [ "$RUNNER_OS" == "Windows" ]; then | |
export PATH="$BCM_INSTALL_PATH/bin:$PATH" | |
else | |
export LD_LIBRARY_PATH="$BCM_INSTALL_PATH/lib:$LD_LIBRARY_PATH" | |
fi | |
fi | |
ctest --output-on-failure --build-config ${{matrix.build_type}} |