[libcxx-commits] [libcxx] [llvm] test with libcxx workflow (PR #71836)
via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Nov 9 14:29:33 PST 2023
https://github.com/EricWF updated https://github.com/llvm/llvm-project/pull/71836
>From f99287d421c3758bc6764b488f770950a989e775 Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 9 Nov 2023 13:15:02 -0500
Subject: [PATCH 01/21] test with libcxx workflow
---
.../workflows/libcxx-example-workflow.yaml | 33 +++++++++++++++++++
1 file changed, 33 insertions(+)
create mode 100644 .github/workflows/libcxx-example-workflow.yaml
diff --git a/.github/workflows/libcxx-example-workflow.yaml b/.github/workflows/libcxx-example-workflow.yaml
new file mode 100644
index 000000000000000..c3a7d3ed20bcd8c
--- /dev/null
+++ b/.github/workflows/libcxx-example-workflow.yaml
@@ -0,0 +1,33 @@
+name: Build and Test libc++
+
+on: pull_request
+
+
+# Comment
+jobs:
+ build:
+ runs-on: libcxx-runners-small
+ steps:
+ - uses: actions/checkout at v4
+ with:
+ fetch-depth: 5
+ - name: Create Paths
+ run: |
+ mkdir build install artifacts
+ - name: Configure
+ run: |
+ cd build
+ cmake -GNinja -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_CXX_COMPILER=clang++ \
+ -DCMAKE_C_COMPILER=clang \
+ "-DLLVM_ENABLE_RUNTIMES=libcxx;libcxxabi"\
+ "-DCMAKE_INSTALL_PREFIX=../install" \
+ ../runtimes
+ - name: Build
+ run: |
+ cd build
+ ninja
+ - name: Install
+ run: |
+ cd build
+ ninja install
>From 7184c61d90b86b9f3ae8fcec65f0d7b8772e5fa2 Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 9 Nov 2023 14:51:01 -0500
Subject: [PATCH 02/21] attempt to mimic buildkite pipeline
---
.../workflows/libcxx-example-workflow.yaml | 26 +++++--------------
1 file changed, 6 insertions(+), 20 deletions(-)
diff --git a/.github/workflows/libcxx-example-workflow.yaml b/.github/workflows/libcxx-example-workflow.yaml
index c3a7d3ed20bcd8c..119bbec837684df 100644
--- a/.github/workflows/libcxx-example-workflow.yaml
+++ b/.github/workflows/libcxx-example-workflow.yaml
@@ -6,28 +6,14 @@ on: pull_request
# Comment
jobs:
build:
- runs-on: libcxx-runners-small
+ runs-on: libcxx-runners-large
steps:
- uses: actions/checkout at v4
with:
fetch-depth: 5
- name: Create Paths
- run: |
- mkdir build install artifacts
- - name: Configure
- run: |
- cd build
- cmake -GNinja -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_CXX_COMPILER=clang++ \
- -DCMAKE_C_COMPILER=clang \
- "-DLLVM_ENABLE_RUNTIMES=libcxx;libcxxabi"\
- "-DCMAKE_INSTALL_PREFIX=../install" \
- ../runtimes
- - name: Build
- run: |
- cd build
- ninja
- - name: Install
- run: |
- cd build
- ninja install
+ run: libcxx/utils/ci/run-buildbot generic-cxx26
+ env:
+ CC: clang-18
+ CXX: clang++-18
+ CMAKE: /opt/bin/cmake
>From d518bac241f41cbc3bedcaf52ee351ec9cf2f228 Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 9 Nov 2023 15:48:31 -0500
Subject: [PATCH 03/21] attempt matrix
---
.../workflows/libcxx-example-workflow.yaml | 23 ++++++++++++++-----
1 file changed, 17 insertions(+), 6 deletions(-)
diff --git a/.github/workflows/libcxx-example-workflow.yaml b/.github/workflows/libcxx-example-workflow.yaml
index 119bbec837684df..7d501b67ec601c3 100644
--- a/.github/workflows/libcxx-example-workflow.yaml
+++ b/.github/workflows/libcxx-example-workflow.yaml
@@ -5,15 +5,26 @@ on: pull_request
# Comment
jobs:
- build:
+ build_and_test:
runs-on: libcxx-runners-large
+ continue-on-error: false
+ strategy:
+ fail-fast: true
+ matrix:
+ config: ['generic-cxx26', 'generic-cxx03', 'modules']
+ cc: ['clang-18']
+ cxx: ['clang++-18']
+ include:
+ config: 'generic-gcc'
+ cc: 'gcc-13'
+ cxx: 'g++-13'
+ max_concurrency: 2
steps:
- uses: actions/checkout at v4
with:
fetch-depth: 5
- - name: Create Paths
- run: libcxx/utils/ci/run-buildbot generic-cxx26
+ - name: ${{ matrix.config }}
+ run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
env:
- CC: clang-18
- CXX: clang++-18
- CMAKE: /opt/bin/cmake
+ CC: ${{ matrix.cc }}
+ CXX: ${{ matrix.cxx }}
>From 0bd6d48c7330985fd8ae049dc6aba8c78c1d68af Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 9 Nov 2023 15:51:12 -0500
Subject: [PATCH 04/21] attempt matrix
---
.github/workflows/libcxx-example-workflow.yaml | 1 -
1 file changed, 1 deletion(-)
diff --git a/.github/workflows/libcxx-example-workflow.yaml b/.github/workflows/libcxx-example-workflow.yaml
index 7d501b67ec601c3..45fd21eec20b880 100644
--- a/.github/workflows/libcxx-example-workflow.yaml
+++ b/.github/workflows/libcxx-example-workflow.yaml
@@ -18,7 +18,6 @@ jobs:
config: 'generic-gcc'
cc: 'gcc-13'
cxx: 'g++-13'
- max_concurrency: 2
steps:
- uses: actions/checkout at v4
with:
>From 5d40ff3ec1a93429044f836fffc9309cee43ac09 Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 9 Nov 2023 15:53:57 -0500
Subject: [PATCH 05/21] attempt matrix
---
.github/workflows/libcxx-example-workflow.yaml | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/libcxx-example-workflow.yaml b/.github/workflows/libcxx-example-workflow.yaml
index 45fd21eec20b880..d46e82e6ee18e60 100644
--- a/.github/workflows/libcxx-example-workflow.yaml
+++ b/.github/workflows/libcxx-example-workflow.yaml
@@ -1,8 +1,6 @@
name: Build and Test libc++
on: pull_request
-
-
# Comment
jobs:
build_and_test:
@@ -15,9 +13,9 @@ jobs:
cc: ['clang-18']
cxx: ['clang++-18']
include:
- config: 'generic-gcc'
- cc: 'gcc-13'
- cxx: 'g++-13'
+ - config: 'generic-gcc'
+ cc: 'gcc-13'
+ cxx: 'g++-13'
steps:
- uses: actions/checkout at v4
with:
>From 704d02208d72c7da09b600ba82cbb4ae729bd10c Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 9 Nov 2023 16:01:38 -0500
Subject: [PATCH 06/21] attempt matrix
---
.github/workflows/libcxx-example-workflow.yaml | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/.github/workflows/libcxx-example-workflow.yaml b/.github/workflows/libcxx-example-workflow.yaml
index d46e82e6ee18e60..0b037afd592acf2 100644
--- a/.github/workflows/libcxx-example-workflow.yaml
+++ b/.github/workflows/libcxx-example-workflow.yaml
@@ -1,6 +1,12 @@
name: Build and Test libc++
on: pull_request
+concurrency: ${{ github.user }}-libcxx
+
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
# Comment
jobs:
build_and_test:
@@ -16,6 +22,9 @@ jobs:
- config: 'generic-gcc'
cc: 'gcc-13'
cxx: 'g++-13'
+ concurrency:
+ group: ${{ github.sha }}-libcxx
+ cancel-in-progress: true
steps:
- uses: actions/checkout at v4
with:
>From 03d5fbcb92508240a74a0a0824346775c0103431 Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 9 Nov 2023 16:02:14 -0500
Subject: [PATCH 07/21] attempt matrix
---
.github/workflows/libcxx-example-workflow.yaml | 3 ---
1 file changed, 3 deletions(-)
diff --git a/.github/workflows/libcxx-example-workflow.yaml b/.github/workflows/libcxx-example-workflow.yaml
index 0b037afd592acf2..c9ade624c9ac8ef 100644
--- a/.github/workflows/libcxx-example-workflow.yaml
+++ b/.github/workflows/libcxx-example-workflow.yaml
@@ -4,9 +4,6 @@ on: pull_request
concurrency: ${{ github.user }}-libcxx
-concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: true
# Comment
jobs:
build_and_test:
>From 43091cfd5186d8e77b52d6ae7c7ee0e530ce773a Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 9 Nov 2023 16:02:44 -0500
Subject: [PATCH 08/21] attempt matrix
---
.github/workflows/libcxx-example-workflow.yaml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/libcxx-example-workflow.yaml b/.github/workflows/libcxx-example-workflow.yaml
index c9ade624c9ac8ef..aa7df709b401f9a 100644
--- a/.github/workflows/libcxx-example-workflow.yaml
+++ b/.github/workflows/libcxx-example-workflow.yaml
@@ -19,9 +19,9 @@ jobs:
- config: 'generic-gcc'
cc: 'gcc-13'
cxx: 'g++-13'
- concurrency:
- group: ${{ github.sha }}-libcxx
- cancel-in-progress: true
+ concurrency:
+ group: ${{ github.sha }}-libcxx
+ cancel-in-progress: true
steps:
- uses: actions/checkout at v4
with:
>From 763db7ccd63143f03694ae1b3cb2e8e8f667057e Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 9 Nov 2023 16:05:11 -0500
Subject: [PATCH 09/21] attempt matrix
---
.github/workflows/libcxx-example-workflow.yaml | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/.github/workflows/libcxx-example-workflow.yaml b/.github/workflows/libcxx-example-workflow.yaml
index aa7df709b401f9a..97c278c367c91b2 100644
--- a/.github/workflows/libcxx-example-workflow.yaml
+++ b/.github/workflows/libcxx-example-workflow.yaml
@@ -1,7 +1,7 @@
name: Build and Test libc++
on: pull_request
-concurrency: ${{ github.user }}-libcxx
+concurrency: ${{ github.user }}
# Comment
@@ -21,7 +21,6 @@ jobs:
cxx: 'g++-13'
concurrency:
group: ${{ github.sha }}-libcxx
- cancel-in-progress: true
steps:
- uses: actions/checkout at v4
with:
>From 4911b1406428aec8382ed87e81312626db037d7b Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 9 Nov 2023 16:06:16 -0500
Subject: [PATCH 10/21] attempt matrix
---
.github/workflows/libcxx-example-workflow.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/libcxx-example-workflow.yaml b/.github/workflows/libcxx-example-workflow.yaml
index 97c278c367c91b2..bbb46b4456acce4 100644
--- a/.github/workflows/libcxx-example-workflow.yaml
+++ b/.github/workflows/libcxx-example-workflow.yaml
@@ -1,7 +1,7 @@
name: Build and Test libc++
on: pull_request
-concurrency: ${{ github.user }}
+concurrency: ${{ github.actor }}
# Comment
>From 83d4e0ecf582abcde4712a444fd2deca3110bec7 Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 9 Nov 2023 16:23:17 -0500
Subject: [PATCH 11/21] attempt matrix
---
.github/workflows/libcxx-example-workflow.yaml | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/libcxx-example-workflow.yaml b/.github/workflows/libcxx-example-workflow.yaml
index bbb46b4456acce4..8faab624b127f66 100644
--- a/.github/workflows/libcxx-example-workflow.yaml
+++ b/.github/workflows/libcxx-example-workflow.yaml
@@ -1,7 +1,7 @@
name: Build and Test libc++
on: pull_request
-concurrency: ${{ github.actor }}
+concurrency: ${{ github.actor }}-large-workflow
# Comment
@@ -12,15 +12,26 @@ jobs:
strategy:
fail-fast: true
matrix:
- config: ['generic-cxx26', 'generic-cxx03', 'modules']
+ config: ['generic-cxx26', 'generic-cxx03', 'modules', 'generic-cxx11', 'generic-cxx14', 'generic-cxx17',
+ 'generic-cxx20', 'generic-cxx23', 'asan', 'msan', 'tsan', 'ubsan']
cc: ['clang-18']
cxx: ['clang++-18']
include:
- config: 'generic-gcc'
cc: 'gcc-13'
cxx: 'g++-13'
+ - config: 'generic-gcc-cxx11'
+ cc: 'gcc-13'
+ cxx: 'g++-13'
+ - config: 'generic-cxx23'
+ cc: 'clang-16'
+ cxx: 'clang++-16'
+ - config: 'generic-cxx23'
+ cc: 'clang-17'
+ cxx: 'clang++-17'
concurrency:
group: ${{ github.sha }}-libcxx
+ id: ${{ matrix.config }}-${{ matrix.cxx }}
steps:
- uses: actions/checkout at v4
with:
>From c69f4e1124afc3d016839be15b8f6fccd4e5ac02 Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 9 Nov 2023 16:32:32 -0500
Subject: [PATCH 12/21] rename
---
.../workflows/libcxx-example-workflow.yaml | 2 +-
libcxx/utils/ci/actions-runner/Dockerfile | 147 ++++++++++++++++++
.../ci/actions-runner/docker-compose.yml | 7 +
3 files changed, 155 insertions(+), 1 deletion(-)
create mode 100644 libcxx/utils/ci/actions-runner/Dockerfile
create mode 100644 libcxx/utils/ci/actions-runner/docker-compose.yml
diff --git a/.github/workflows/libcxx-example-workflow.yaml b/.github/workflows/libcxx-example-workflow.yaml
index 8faab624b127f66..753b0cddf0f9701 100644
--- a/.github/workflows/libcxx-example-workflow.yaml
+++ b/.github/workflows/libcxx-example-workflow.yaml
@@ -12,7 +12,7 @@ jobs:
strategy:
fail-fast: true
matrix:
- config: ['generic-cxx26', 'generic-cxx03', 'modules', 'generic-cxx11', 'generic-cxx14', 'generic-cxx17',
+ config: ['generic-cxx26', 'generic-cxx03', 'generic-modules', 'generic-cxx11', 'generic-cxx14', 'generic-cxx17',
'generic-cxx20', 'generic-cxx23', 'asan', 'msan', 'tsan', 'ubsan']
cc: ['clang-18']
cxx: ['clang++-18']
diff --git a/libcxx/utils/ci/actions-runner/Dockerfile b/libcxx/utils/ci/actions-runner/Dockerfile
new file mode 100644
index 000000000000000..b2f38433cf415f8
--- /dev/null
+++ b/libcxx/utils/ci/actions-runner/Dockerfile
@@ -0,0 +1,147 @@
+#===----------------------------------------------------------------------===##
+#
+# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+#
+#===----------------------------------------------------------------------===##
+
+#
+# This Dockerfile describes the base image used to run the various libc++
+# build bots. By default, the image runs the Buildkite Agent, however one
+# can also just start the image with a shell to debug CI failures.
+#
+# To start a Buildkite Agent, run it as:
+# $ docker run --env-file <secrets> -it $(docker build -q libcxx/utils/ci)
+#
+# The environment variables in `<secrets>` should be the ones necessary
+# to run a BuildKite agent:
+#
+# BUILDKITE_AGENT_TOKEN=<token>
+#
+# If you're only looking to run the Docker image locally for debugging a
+# build bot, see the `run-buildbot-container` script located in this directory.
+#
+# A pre-built version of this image is maintained on DockerHub as ldionne/libcxx-builder.
+# To update the image, rebuild it and push it to ldionne/libcxx-builder (which
+# will obviously only work if you have permission to do so).
+#
+# $ docker build -t ldionne/libcxx-builder libcxx/utils/ci
+# $ docker push ldionne/libcxx-builder
+#
+
+FROM ghcr.io/actions/actions-runner:latest AS OTHER
+ENV GCC_LATEST_VERSION=13
+
+# Make sure apt-get doesn't try to prompt for stuff like our time zone, etc.
+ENV DEBIAN_FRONTEND=noninteractive
+
+RUN sudo apt-get update \
+ && sudo apt-get install -y --no-install-recommends \
+ apt-transport-https \
+ apt-utils \
+ bash \
+ build-essential \
+ ca-certificates \
+ ccache \
+ cmake \
+ curl \
+ g++ \
+ gdb \
+ git \
+ gnupg \
+ language-pack-en \
+ language-pack-fr \
+ language-pack-ja \
+ language-pack-ru \
+ language-pack-zh-hans \
+ libedit-dev \
+ libncurses5-dev \
+ libpython3-dev \
+ libxml2-dev \
+ lsb-release \
+ ninja-build \
+ python3 \
+ python3-dev \
+ python3-distutils \
+ python3-psutil \
+ python3-venv \
+ software-properties-common \
+ swig3.0 \
+ uuid-dev \
+ uuid-runtime \
+ wget \
+ && sudo rm -rf /var/lib/apt/lists/*
+
+RUN sudo add-apt-repository ppa:ubuntu-toolchain-r/test \
+ && sudo apt-get update \
+ && sudo apt-get install -y \
+ gcc-$GCC_LATEST_VERSION \
+ g++-$GCC_LATEST_VERSION \
+ gcc-$((GCC_LATEST_VERSION - 1)) \
+ g++-$((GCC_LATEST_VERSION - 1)) \
+ && sudo rm -rf /var/lib/apt/lists/*
+
+# Install various tools used by the build or the test suite
+#RUN apt-get update && apt-get install -y ninja-build python3 python3-distutils python3-psutil git gdb ccache
+# TODO add ninja-build once 1.11 is available in Ubuntu, also remove the manual installation.
+
+RUN <<EOF
+ sudo wget -qO /usr/local/bin/ninja.gz https://github.com/ninja-build/ninja/releases/latest/download/ninja-linux.zip
+ sudo gunzip /usr/local/bin/ninja.gz
+ sudo chmod a+x /usr/local/bin/ninja
+EOF
+
+# These two are not enabled by default so generate them
+RUN <<EOF
+ sudo printf "fr_CA ISO-8859-1\ncs_CZ ISO-8859-2" >> /etc/locale.gen
+ sudo mkdir /usr/local/share/i1en/
+ sudo printf "fr_CA ISO-8859-1\ncs_CZ ISO-8859-2" >> /usr/local/share/i1en/SUPPORTED
+ sudo locale-gen
+EOF
+
+# Install Clang <latest>, <latest-1> and ToT, which are the ones we support.
+# We also install <latest-2> because we need to support the "latest-1" of the
+# current LLVM release branch, which is effectively the <latest-2> of the
+# tip-of-trunk LLVM. For example, after branching LLVM 14 but before branching
+# LLVM 15, we still need to have Clang 12 in this Docker image because the LLVM
+# 14 release branch CI uses it. The tip-of-trunk CI will never use Clang 12,
+# though.
+# LLVM POST-BRANCH bump version
+ENV LLVM_HEAD_VERSION=18
+
+RUN <<EOF
+ wget https://apt.llvm.org/llvm.sh -O /tmp/llvm.sh
+ sudo bash /tmp/llvm.sh $(($LLVM_HEAD_VERSION - 3)) all # for CI transitions
+ sudo bash /tmp/llvm.sh $(($LLVM_HEAD_VERSION - 2)) all # previous release
+ sudo bash /tmp/llvm.sh $(($LLVM_HEAD_VERSION - 1)) all # latest release
+ sudo bash /tmp/llvm.sh $LLVM_HEAD_VERSION all # current ToT
+EOF
+
+# Install clang-scan-deps, which is required to build modules; always all supported versions.
+#RUN sudo apt-get update && sudo apt-get install -y clang-tools-$(($LLVM_HEAD_VERSION - 3)) \
+# clang-tools-$(($LLVM_HEAD_VERSION - 2)) \
+# clang-tools-$(($LLVM_HEAD_VERSION - 1)) \
+# clang-tools-$LLVM_HEAD_VERSION \
+# clang-format-$(($LLVM_HEAD_VERSION - 2)) clang-format-$(($LLVM_HEAD_VERSION - 1)) \
+# clang-tidy-$(($LLVM_HEAD_VERSION - 2)) clang-tidy-$(($LLVM_HEAD_VERSION - 1)) clang-tidy-$LLVM_HEAD_VERSION \
+# llvm-$(($LLVM_HEAD_VERSION - 2))-dev llvm-$(($LLVM_HEAD_VERSION - 1))-dev llvm-$LLVM_HEAD_VERSION-dev \
+# libclang-$(($LLVM_HEAD_VERSION - 2))-dev libclang-$(($LLVM_HEAD_VERSION - 1))-dev libclang-$LLVM_HEAD_VERSION-dev \
+# libomp5-$LLVM_HEAD_VERSION
+#
+# Install a newer CMake for modules
+# TODO Remove the duplicated installation when all runtimes can be build with CMake 3.28.
+RUN <<EOF
+ wget https://github.com/Kitware/CMake/releases/download/v3.21.1/cmake-3.21.1-linux-x86_64.sh -O /tmp/install-cmake.sh
+ sudo bash /tmp/install-cmake.sh --prefix=/usr --exclude-subdir --skip-license
+ rm /tmp/install-cmake.sh
+
+ wget https://github.com/Kitware/CMake/releases/download/v3.27.1/cmake-3.27.1-linux-x86_64.sh -O /tmp/install-cmake.sh
+ sudo bash /tmp/install-cmake.sh --prefix=/opt --exclude-subdir --skip-license
+ rm /tmp/install-cmake.sh
+
+ wget https://github.com/Kitware/CMake/releases/download/v3.28.0-rc4/cmake-3.28.0-rc4-linux-x86_64.sh -O /tmp/install-cmake.sh
+ sudo mkdir /opt/cmake-3.28
+ sudo bash /tmp/install-cmake.sh --prefix=/opt/cmake-3.28 --exclude-subdir --skip-license
+ rm /tmp/install-cmake.sh
+EOF
diff --git a/libcxx/utils/ci/actions-runner/docker-compose.yml b/libcxx/utils/ci/actions-runner/docker-compose.yml
new file mode 100644
index 000000000000000..824f77c6e73366d
--- /dev/null
+++ b/libcxx/utils/ci/actions-runner/docker-compose.yml
@@ -0,0 +1,7 @@
+version: '3.8'
+services:
+ libcxx-actions-runner:
+ build:
+ context: .
+ dockerfile: Dockerfile
+ image: ghcr.io/libcxx/libcxx-actions-runner:latest
>From df08610366d5e06817915ed7b77010c63dfc9aaa Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 9 Nov 2023 16:39:11 -0500
Subject: [PATCH 13/21] rename
---
.github/workflows/libcxx-example-workflow.yaml | 1 -
1 file changed, 1 deletion(-)
diff --git a/.github/workflows/libcxx-example-workflow.yaml b/.github/workflows/libcxx-example-workflow.yaml
index 753b0cddf0f9701..ff7777cc2f38ec5 100644
--- a/.github/workflows/libcxx-example-workflow.yaml
+++ b/.github/workflows/libcxx-example-workflow.yaml
@@ -31,7 +31,6 @@ jobs:
cxx: 'clang++-17'
concurrency:
group: ${{ github.sha }}-libcxx
- id: ${{ matrix.config }}-${{ matrix.cxx }}
steps:
- uses: actions/checkout at v4
with:
>From 5630ff1ee2034884d5a528d987513bc8e9a847fc Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 9 Nov 2023 17:04:48 -0500
Subject: [PATCH 14/21] try steps
---
.../workflows/libcxx-example-workflow.yaml | 81 +++++++++++++++----
1 file changed, 67 insertions(+), 14 deletions(-)
diff --git a/.github/workflows/libcxx-example-workflow.yaml b/.github/workflows/libcxx-example-workflow.yaml
index ff7777cc2f38ec5..5fb4a09e1448a9f 100644
--- a/.github/workflows/libcxx-example-workflow.yaml
+++ b/.github/workflows/libcxx-example-workflow.yaml
@@ -3,34 +3,26 @@ name: Build and Test libc++
on: pull_request
concurrency: ${{ github.actor }}-large-workflow
+permissions:
+ checks: write
+ pull-requests: write
# Comment
jobs:
- build_and_test:
+ first_group:
runs-on: libcxx-runners-large
continue-on-error: false
strategy:
fail-fast: true
+ max-parallel: 1
matrix:
- config: ['generic-cxx26', 'generic-cxx03', 'generic-modules', 'generic-cxx11', 'generic-cxx14', 'generic-cxx17',
- 'generic-cxx20', 'generic-cxx23', 'asan', 'msan', 'tsan', 'ubsan']
+ config: ['generic-cxx26', 'generic-cxx03', 'generic-modules']
cc: ['clang-18']
cxx: ['clang++-18']
include:
- config: 'generic-gcc'
cc: 'gcc-13'
cxx: 'g++-13'
- - config: 'generic-gcc-cxx11'
- cc: 'gcc-13'
- cxx: 'g++-13'
- - config: 'generic-cxx23'
- cc: 'clang-16'
- cxx: 'clang++-16'
- - config: 'generic-cxx23'
- cc: 'clang-17'
- cxx: 'clang++-17'
- concurrency:
- group: ${{ github.sha }}-libcxx
steps:
- uses: actions/checkout at v4
with:
@@ -40,3 +32,64 @@ jobs:
env:
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
+ standards:
+ runs-on: libcxx-runners-large
+ continue-on-error: false
+ strategy:
+ fail-fast: true
+ max-parallel: 1
+ matrix:
+ config: [ 'generic-cxx11', 'generic-cxx14', 'generic-cxx17',
+ 'generic-cxx20', 'generic-cxx23' ]
+ steps:
+ - uses: actions/checkout at v4
+ with:
+ fetch-depth: 5
+ - name: ${{ matrix.config }}
+ run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
+ env:
+ CC: 'clang-18'
+ CXX: 'clang++-18'
+ sanitizers:
+ runs-on: libcxx-runners-large
+ continue-on-error: false
+ strategy:
+ fail-fast: true
+ max-parallel: 1
+ matrix:
+ config: [ 'asan', 'msan', 'tsan', 'ubsan' ]
+ steps:
+ - uses: actions/checkout at v4
+ with:
+ fetch-depth: 5
+ - name: ${{ matrix.config }}
+ run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
+ env:
+ CC: clang-18
+ CXX: clang++-18
+ legacy_compilers:
+ runs-on: libcxx-runners-large
+ continue-on-error: false
+ strategy:
+ fail-fast: true
+ max-parallel: 1
+ matrix:
+ include:
+ - config: 'generic-gcc-cxx11'
+ cc: 'gcc-13'
+ cxx: 'g++-13'
+ - config: 'generic-cxx23'
+ cc: 'clang-16'
+ cxx: 'clang++-16'
+ - config: 'generic-cxx23'
+ cc: 'clang-17'
+ cxx: 'clang++-17'
+ steps:
+ - uses: actions/checkout at v4
+ with:
+ fetch-depth: 5
+ - name: ${{ matrix.config }}
+ run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
+ env:
+ CC: ${{ matrix.cc }}
+ CXX: ${{ matrix.cxx }}
>From a50c3c00b4c69e0959b9d12dfb397eaf4db1d1ba Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 9 Nov 2023 17:05:43 -0500
Subject: [PATCH 15/21] try steps
---
.github/workflows/libcxx-example-workflow.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/libcxx-example-workflow.yaml b/.github/workflows/libcxx-example-workflow.yaml
index 5fb4a09e1448a9f..cac246a6cebea39 100644
--- a/.github/workflows/libcxx-example-workflow.yaml
+++ b/.github/workflows/libcxx-example-workflow.yaml
@@ -57,7 +57,7 @@ jobs:
fail-fast: true
max-parallel: 1
matrix:
- config: [ 'asan', 'msan', 'tsan', 'ubsan' ]
+ config: [ 'generic-asan', 'generic-msan', 'generic-tsan', 'generic-ubsan' ]
steps:
- uses: actions/checkout at v4
with:
>From bad01b3fdf001cc24e005cdc11cc0829e80ab864 Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 9 Nov 2023 17:07:39 -0500
Subject: [PATCH 16/21] try steps
---
.github/workflows/libcxx-example-workflow.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/libcxx-example-workflow.yaml b/.github/workflows/libcxx-example-workflow.yaml
index cac246a6cebea39..fdaf6cdd986b9d1 100644
--- a/.github/workflows/libcxx-example-workflow.yaml
+++ b/.github/workflows/libcxx-example-workflow.yaml
@@ -67,7 +67,7 @@ jobs:
env:
CC: clang-18
CXX: clang++-18
- legacy_compilers:
+ legacy_compilers:
runs-on: libcxx-runners-large
continue-on-error: false
strategy:
>From f6b3d15042371950aedd30205807204d3a660b1d Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 9 Nov 2023 17:14:26 -0500
Subject: [PATCH 17/21] try again
---
.github/workflows/libcxx-example-workflow.yaml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/.github/workflows/libcxx-example-workflow.yaml b/.github/workflows/libcxx-example-workflow.yaml
index fdaf6cdd986b9d1..b821a80f95b0770 100644
--- a/.github/workflows/libcxx-example-workflow.yaml
+++ b/.github/workflows/libcxx-example-workflow.yaml
@@ -7,6 +7,9 @@ permissions:
checks: write
pull-requests: write
+env:
+ CMAKE: "/opt/bin/cmake"
+
# Comment
jobs:
first_group:
@@ -34,6 +37,7 @@ jobs:
CXX: ${{ matrix.cxx }}
standards:
runs-on: libcxx-runners-large
+ needs: first_group
continue-on-error: false
strategy:
fail-fast: true
>From fa65f86141dbd4101f273402db68489d79a3d3a0 Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 9 Nov 2023 17:16:51 -0500
Subject: [PATCH 18/21] try again
---
.github/workflows/libcxx-example-workflow.yaml | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/.github/workflows/libcxx-example-workflow.yaml b/.github/workflows/libcxx-example-workflow.yaml
index b821a80f95b0770..fb664e23cc65c7d 100644
--- a/.github/workflows/libcxx-example-workflow.yaml
+++ b/.github/workflows/libcxx-example-workflow.yaml
@@ -1,7 +1,9 @@
name: Build and Test libc++
on: pull_request
-concurrency: ${{ github.actor }}-large-workflow
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
permissions:
checks: write
@@ -17,7 +19,7 @@ jobs:
continue-on-error: false
strategy:
fail-fast: true
- max-parallel: 1
+ max-parallel: 2
matrix:
config: ['generic-cxx26', 'generic-cxx03', 'generic-modules']
cc: ['clang-18']
@@ -41,7 +43,7 @@ jobs:
continue-on-error: false
strategy:
fail-fast: true
- max-parallel: 1
+ max-parallel: 2
matrix:
config: [ 'generic-cxx11', 'generic-cxx14', 'generic-cxx17',
'generic-cxx20', 'generic-cxx23' ]
@@ -55,11 +57,12 @@ jobs:
CC: 'clang-18'
CXX: 'clang++-18'
sanitizers:
- runs-on: libcxx-runners-large
+ runs-on: libcxx-runners-small
+ needs: [ first_group, standards ]
continue-on-error: false
strategy:
fail-fast: true
- max-parallel: 1
+ max-parallel: 8
matrix:
config: [ 'generic-asan', 'generic-msan', 'generic-tsan', 'generic-ubsan' ]
steps:
@@ -72,11 +75,11 @@ jobs:
CC: clang-18
CXX: clang++-18
legacy_compilers:
- runs-on: libcxx-runners-large
+ runs-on: libcxx-runners-small
continue-on-error: false
strategy:
fail-fast: true
- max-parallel: 1
+ max-parallel: 8
matrix:
include:
- config: 'generic-gcc-cxx11'
>From c3c60c61a86c9b0ab39cc8ae377149fc789d5791 Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 9 Nov 2023 17:23:23 -0500
Subject: [PATCH 19/21] fix
---
.../workflows/libcxx-example-workflow.yaml | 49 ++++++++++---------
1 file changed, 25 insertions(+), 24 deletions(-)
diff --git a/.github/workflows/libcxx-example-workflow.yaml b/.github/workflows/libcxx-example-workflow.yaml
index fb664e23cc65c7d..77c72d131fa81ca 100644
--- a/.github/workflows/libcxx-example-workflow.yaml
+++ b/.github/workflows/libcxx-example-workflow.yaml
@@ -2,7 +2,7 @@ name: Build and Test libc++
on: pull_request
concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
cancel-in-progress: true
permissions:
@@ -15,11 +15,11 @@ env:
# Comment
jobs:
first_group:
- runs-on: libcxx-runners-large
+ runs-on: libcxx-runners-small
continue-on-error: false
strategy:
fail-fast: true
- max-parallel: 2
+ max-parallel: 4
matrix:
config: ['generic-cxx26', 'generic-cxx03', 'generic-modules']
cc: ['clang-18']
@@ -38,12 +38,12 @@ jobs:
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
standards:
- runs-on: libcxx-runners-large
+ runs-on: libcxx-runners-small
needs: first_group
continue-on-error: false
strategy:
fail-fast: true
- max-parallel: 2
+ max-parallel: 4
matrix:
config: [ 'generic-cxx11', 'generic-cxx14', 'generic-cxx17',
'generic-cxx20', 'generic-cxx23' ]
@@ -56,30 +56,13 @@ jobs:
env:
CC: 'clang-18'
CXX: 'clang++-18'
- sanitizers:
- runs-on: libcxx-runners-small
- needs: [ first_group, standards ]
- continue-on-error: false
- strategy:
- fail-fast: true
- max-parallel: 8
- matrix:
- config: [ 'generic-asan', 'generic-msan', 'generic-tsan', 'generic-ubsan' ]
- steps:
- - uses: actions/checkout at v4
- with:
- fetch-depth: 5
- - name: ${{ matrix.config }}
- run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
- env:
- CC: clang-18
- CXX: clang++-18
+
legacy_compilers:
runs-on: libcxx-runners-small
continue-on-error: false
strategy:
fail-fast: true
- max-parallel: 8
+ max-parallel: 4
matrix:
include:
- config: 'generic-gcc-cxx11'
@@ -100,3 +83,21 @@ jobs:
env:
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
+ sanitizers:
+ runs-on: libcxx-runners-small
+ needs: [ first_group, legacy_compilers, standards ]
+ continue-on-error: false
+ strategy:
+ fail-fast: true
+ max-parallel: 4
+ matrix:
+ config: [ 'generic-asan', 'generic-msan', 'generic-tsan', 'generic-ubsan' ]
+ steps:
+ - uses: actions/checkout at v4
+ with:
+ fetch-depth: 5
+ - name: ${{ matrix.config }}
+ run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
+ env:
+ CC: clang-18
+ CXX: clang++-18
>From a62f64b84778602940d1316854720a24123beff0 Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 9 Nov 2023 17:27:37 -0500
Subject: [PATCH 20/21] fix
---
.../workflows/libcxx-example-workflow.yaml | 48 +++++++++----------
1 file changed, 24 insertions(+), 24 deletions(-)
diff --git a/.github/workflows/libcxx-example-workflow.yaml b/.github/workflows/libcxx-example-workflow.yaml
index 77c72d131fa81ca..1e3ecaf052ffdfc 100644
--- a/.github/workflows/libcxx-example-workflow.yaml
+++ b/.github/workflows/libcxx-example-workflow.yaml
@@ -14,7 +14,7 @@ env:
# Comment
jobs:
- first_group:
+ sanity:
runs-on: libcxx-runners-small
continue-on-error: false
strategy:
@@ -37,29 +37,10 @@ jobs:
env:
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
- standards:
- runs-on: libcxx-runners-small
- needs: first_group
- continue-on-error: false
- strategy:
- fail-fast: true
- max-parallel: 4
- matrix:
- config: [ 'generic-cxx11', 'generic-cxx14', 'generic-cxx17',
- 'generic-cxx20', 'generic-cxx23' ]
- steps:
- - uses: actions/checkout at v4
- with:
- fetch-depth: 5
- - name: ${{ matrix.config }}
- run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
- env:
- CC: 'clang-18'
- CXX: 'clang++-18'
-
- legacy_compilers:
+ legacy:
runs-on: libcxx-runners-small
continue-on-error: false
+ needs: [ sanity ]
strategy:
fail-fast: true
max-parallel: 4
@@ -83,13 +64,32 @@ jobs:
env:
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
- sanitizers:
+ standards:
runs-on: libcxx-runners-small
- needs: [ first_group, legacy_compilers, standards ]
+ needs: [ sanity, legacy ]
continue-on-error: false
strategy:
fail-fast: true
max-parallel: 4
+ matrix:
+ config: [ 'generic-cxx11', 'generic-cxx14', 'generic-cxx17',
+ 'generic-cxx20', 'generic-cxx23' ]
+ steps:
+ - uses: actions/checkout at v4
+ with:
+ fetch-depth: 5
+ - name: ${{ matrix.config }}
+ run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
+ env:
+ CC: 'clang-18'
+ CXX: 'clang++-18'
+ sanitizers:
+ runs-on: libcxx-runners-large
+ needs: [ sanity, legacy, standards ]
+ continue-on-error: false
+ strategy:
+ fail-fast: true
+ max-parallel: 1
matrix:
config: [ 'generic-asan', 'generic-msan', 'generic-tsan', 'generic-ubsan' ]
steps:
>From a8824e1c12c14e1d45b4fa56b9fc367e0502890e Mon Sep 17 00:00:00 2001
From: eric <eric at efcs.ca>
Date: Thu, 9 Nov 2023 17:29:13 -0500
Subject: [PATCH 21/21] fix
---
.github/workflows/libcxx-example-workflow.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/libcxx-example-workflow.yaml b/.github/workflows/libcxx-example-workflow.yaml
index 1e3ecaf052ffdfc..5dd9f233b184f05 100644
--- a/.github/workflows/libcxx-example-workflow.yaml
+++ b/.github/workflows/libcxx-example-workflow.yaml
@@ -66,7 +66,7 @@ jobs:
CXX: ${{ matrix.cxx }}
standards:
runs-on: libcxx-runners-small
- needs: [ sanity, legacy ]
+ needs: [ sanity ]
continue-on-error: false
strategy:
fail-fast: true
More information about the libcxx-commits
mailing list