From e224b02934d33666b74e30ce5d1e1c8ed365a4c4 Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Sat, 7 Dec 2024 19:54:28 +0100 Subject: [PATCH 1/5] Fix node 20 issue on GHA CI --- .github/workflows/ci.yml | 199 ++++++++------------------------------- 1 file changed, 41 insertions(+), 158 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4f31b4b3..4096dece 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,171 +17,59 @@ jobs: fail-fast: false matrix: include: - - toolset: gcc-4.8 - cxxstd: "11" - os: ubuntu-latest - container: ubuntu:18.04 - install: g++-4.8 - - 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-20.04 - install: g++-7 - - toolset: gcc-8 - cxxstd: "11,14,17,2a" - os: ubuntu-20.04 - install: g++-8 - - toolset: gcc-9 - cxxstd: "11,14,17,2a" - os: ubuntu-20.04 - - toolset: gcc-10 - cxxstd: "11,14,17,2a" - os: ubuntu-20.04 - install: g++-10 - - toolset: gcc-11 - cxxstd: "11,14,17,2a" - os: ubuntu-22.04 - - toolset: gcc-12 - cxxstd: "11,14,17,20,2b" - os: ubuntu-22.04 - install: g++-12 - - toolset: gcc-13 - cxxstd: "11,14,17,20,2b" - container: ubuntu:23.04 - os: ubuntu-latest - install: g++-13 - - toolset: gcc-14 - cxxstd: "11,14,17,20,2b" - container: ubuntu:24.04 - os: ubuntu-latest - install: g++-14 - - 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-20.04 - install: clang-6.0 - - toolset: clang - compiler: clang++-7 - cxxstd: "11,14,17" - os: ubuntu-20.04 - install: clang-7 - - toolset: clang - compiler: clang++-8 - cxxstd: "11,14,17" - os: ubuntu-20.04 - install: clang-8 - - toolset: clang - compiler: clang++-9 - cxxstd: "11,14,17" - os: ubuntu-20.04 - install: clang-9 - - toolset: clang - compiler: clang++-10 - cxxstd: "11,14,17,2a" - os: ubuntu-20.04 - install: clang-10 - - toolset: clang - compiler: clang++-11 - cxxstd: "11,14,17,2a" - os: ubuntu-20.04 - install: clang-11 - - toolset: clang - compiler: clang++-12 - cxxstd: "11,14,17,2a" - os: ubuntu-20.04 - install: clang-12 - - toolset: clang - compiler: clang++-13 - cxxstd: "11,14,17,20,2b" - container: ubuntu:22.04 - os: ubuntu-latest - install: clang-13 - - toolset: clang - compiler: clang++-14 - cxxstd: "11,14,17,20,2b" - container: ubuntu:22.04 - os: ubuntu-latest - install: clang-14 - - toolset: clang - compiler: clang++-15 - cxxstd: "11,14,17,20,2b" - container: ubuntu:22.04 - os: ubuntu-latest - install: clang-15 - - toolset: clang - compiler: clang++-16 - cxxstd: "11,14,17,20,2b" - container: ubuntu:23.04 - os: ubuntu-latest - install: clang-16 - - toolset: clang - compiler: clang++-17 - cxxstd: "11,14,17,20,2b" - container: ubuntu:23.10 - os: ubuntu-latest - install: clang-17 - - toolset: clang - compiler: clang++-18 - cxxstd: "11,14,17,20,2b" - container: ubuntu:24.04 - os: ubuntu-latest - install: clang-18 - - toolset: clang - cxxstd: "11,14,17,20,2b" - os: macos-12 - - toolset: clang - cxxstd: "11,14,17,20,2b" - os: macos-13 - - toolset: clang - cxxstd: "11,14,17,20,2b" - os: macos-14 + - { toolset: gcc-4.8, cxxstd: "11", os: ubuntu-latest, container: 'ubuntu:18.04', install: g++-4.8 } + - { 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-20.04, install: g++-7 } + - { toolset: gcc-8, cxxstd: "11,14,17,2a", os: ubuntu-20.04, install: g++-8 } + - { toolset: gcc-9, cxxstd: "11,14,17,2a", os: ubuntu-20.04, install: g++-9 } + - { toolset: gcc-10, cxxstd: "11,14,17,2a", os: ubuntu-20.04, install: g++-10 } + - { toolset: gcc-11, cxxstd: "11,14,17,20", os: ubuntu-22.04, install: g++-11 } + - { toolset: gcc-12, cxxstd: "11,14,17,20,2b", os: ubuntu-22.04, install: g++-12 } + - { toolset: gcc-13, cxxstd: "11,14,17,20,2b", os: ubuntu-24.04, install: g++-13 } + - { toolset: gcc-14, cxxstd: "11,14,17,20,2b", os: ubuntu-24.04, install: g++-14 } + - { toolset: clang++-3.9, cxxstd: "11,14", os: ubuntu-latest, container: 'ubuntu:18.04', install: clang-3.9 } + - { toolset: clang++-4.0, cxxstd: "11,14", os: ubuntu-latest, container: 'ubuntu:18.04', install: clang-4.0 } + - { toolset: clang++-5.0, cxxstd: "11,14,1z", os: ubuntu-latest, container: 'ubuntu:18.04', install: clang-5.0 } + - { toolset: clang++-6.0, cxxstd: "11,14,17", os: ubuntu-20.04, install: clang-6.0 } + - { toolset: clang++-7, cxxstd: "11,14,17", os: ubuntu-20.04, install: clang-7 } + - { toolset: clang++-8, cxxstd: "11,14,17", os: ubuntu-20.04, install: clang-8 } + - { toolset: clang++-9, cxxstd: "11,14,17,2a", os: ubuntu-20.04, install: clang-9 } + - { toolset: clang++-10, cxxstd: "11,14,17,2a", os: ubuntu-20.04 } + - { toolset: clang++-11, cxxstd: "11,14,17,2a", os: ubuntu-20.04 } + - { toolset: clang++-12, cxxstd: "11,14,17,20", os: ubuntu-20.04 } + - { toolset: clang++-13, cxxstd: "11,14,17,20,2b", os: ubuntu-22.04, install: clang-13 } + - { toolset: clang++-14, cxxstd: "11,14,17,20,2b", os: ubuntu-22.04, install: clang-14 } + - { toolset: clang++-15, cxxstd: "11,14,17,20,2b", os: ubuntu-22.04, install: clang-15 } + - { toolset: clang++-16, cxxstd: "11,14,17,20,2b", os: ubuntu-24.04, install: clang-16 } + - { toolset: clang++-17, cxxstd: "11,14,17,20,2b", os: ubuntu-24.04, install: clang-17 } + - { toolset: clang++-18, cxxstd: "11,14,17,20,2b", os: ubuntu-24.04, install: clang-18 } + - { toolset: clang, cxxstd: "11,14,17,20,2b", os: macos-13 } + - { toolset: clang, cxxstd: "11,14,17,20,2b", os: macos-14 } runs-on: ${{matrix.os}} - container: ${{matrix.container}} + container: + image: ${{matrix.container}} + volumes: + - /node20217:/node20217:rw,rshared + - ${{ startsWith(matrix.container, 'ubuntu:1') && '/node20217:/__e/node20:ro,rshared' || ' ' }} defaults: run: shell: bash steps: - - name: Enable Node 16 - run: | - echo "ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true" >> $GITHUB_ENV - - - uses: actions/checkout@v3 - - name: Setup container environment if: matrix.container run: | apt-get update - apt-get -y install sudo python3 git g++ + 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 @@ -211,11 +99,6 @@ jobs: ./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 From 8f3330e6ac23d2b95eb7ccd70f40e1079e978402 Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Sun, 8 Dec 2024 20:42:15 +0100 Subject: [PATCH 2/5] Remove macos-12 from GHA --- .github/workflows/ci.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4096dece..0bf6459e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -170,7 +170,6 @@ jobs: include: - os: ubuntu-20.04 - os: ubuntu-22.04 - - os: macos-12 - os: macos-13 - os: macos-14 @@ -218,7 +217,6 @@ jobs: include: - os: ubuntu-20.04 - os: ubuntu-22.04 - - os: macos-12 - os: macos-13 - os: macos-14 @@ -276,7 +274,6 @@ jobs: include: - os: ubuntu-20.04 - os: ubuntu-22.04 - - os: macos-12 - os: macos-13 - os: macos-14 From 53faad71e321be893d91b0f0f5fa9fafb4f3bfe2 Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Sun, 8 Dec 2024 20:56:20 +0100 Subject: [PATCH 3/5] Install xz --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0bf6459e..3fd1e4c7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -63,7 +63,7 @@ jobs: if: matrix.container run: | apt-get update - apt-get -y install sudo python3 git g++ curl + apt-get -y install sudo python3 git g++ curl xz-utils 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 From 6cfccd7cf2011f298d8dfbe23bfb06d5f89a4cfd Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Mon, 9 Dec 2024 13:01:48 +0100 Subject: [PATCH 4/5] Remove C++2b from clang-17 There is a bug with libstdc++13 in 24.04: https://github.com/llvm/llvm-project/issues/59827 --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3fd1e4c7..155f2245 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,7 +42,7 @@ jobs: - { toolset: clang++-14, cxxstd: "11,14,17,20,2b", os: ubuntu-22.04, install: clang-14 } - { toolset: clang++-15, cxxstd: "11,14,17,20,2b", os: ubuntu-22.04, install: clang-15 } - { toolset: clang++-16, cxxstd: "11,14,17,20,2b", os: ubuntu-24.04, install: clang-16 } - - { toolset: clang++-17, cxxstd: "11,14,17,20,2b", os: ubuntu-24.04, install: clang-17 } + - { toolset: clang++-17, cxxstd: "11,14,17,20", os: ubuntu-24.04, install: clang-17 } - { toolset: clang++-18, cxxstd: "11,14,17,20,2b", os: ubuntu-24.04, install: clang-18 } - { toolset: clang, cxxstd: "11,14,17,20,2b", os: macos-13 } - { toolset: clang, cxxstd: "11,14,17,20,2b", os: macos-14 } From f1c6a533ea1cdfbf9bf4a23d275050c9c142529b Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Tue, 10 Dec 2024 10:12:28 +0100 Subject: [PATCH 5/5] Fix clang toolset build --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 155f2245..3813b7de 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -102,7 +102,8 @@ jobs: - name: Run tests run: | cd ../boost-root - ./b2 -j3 libs/$LIBRARY/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} variant=debug,release + toolset=${{matrix.toolset}} + ./b2 -j3 libs/$LIBRARY/test toolset=${toolset/clang++-/clang-} cxxstd=${{matrix.cxxstd}} variant=debug,release windows: strategy: