[libcxx] [llvm] [libc++] Trigger the buildkite CI only if stages 1 and 2 already passed (PR #79209)

Nikolas Klauser via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 23 13:03:55 PST 2024


https://github.com/philnik777 updated https://github.com/llvm/llvm-project/pull/79209

>From 19ae3610b416d2cf73c7f2d8d2990c240e7fd421 Mon Sep 17 00:00:00 2001
From: Nikolas Klauser <nikolasklauser at berlin.de>
Date: Tue, 23 Jan 2024 21:54:38 +0100
Subject: [PATCH] [libc++] Trigger the buildkite CI only if stages 1 and 2
 already passed

---
 .ci/generate-buildkite-pipeline-premerge     |  11 -
 .github/workflows/libcxx-build-and-test.yaml | 319 ++++++++++---------
 libcxx/include/libcxx_trigger                |   0
 3 files changed, 165 insertions(+), 165 deletions(-)
 create mode 100644 libcxx/include/libcxx_trigger

diff --git a/.ci/generate-buildkite-pipeline-premerge b/.ci/generate-buildkite-pipeline-premerge
index f32eb7213b94027..318b968fbc70256 100755
--- a/.ci/generate-buildkite-pipeline-premerge
+++ b/.ci/generate-buildkite-pipeline-premerge
@@ -197,17 +197,6 @@ function check-targets() {
 
 # Project specific pipelines.
 
-# If libc++ or one of the runtimes directories changed.
-if echo "$modified_dirs" | grep -q -E "^(libcxx|libcxxabi|libunwind|runtimes|cmake)$"; then
-  cat <<EOF
-- trigger: "libcxx-ci"
-  build:
-    message: "${buildMessage}"
-    commit: "${BUILDKITE_COMMIT}"
-    branch: "${BUILDKITE_BRANCH}"
-EOF
-fi
-
 # If clang changed.
 if echo "$modified_dirs" | grep -q -E "^(clang)$"; then
   cat <<EOF
diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
index 1666a687aa5d047..7ee24d10b383364 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -49,161 +49,172 @@ env:
 
 jobs:
   stage1:
+#    if: github.repository_owner == 'llvm'
+#    runs-on: libcxx-runners-8-set
+#    continue-on-error: false
+#    strategy:
+#      fail-fast: false
+#      matrix:
+#        config: [
+#          'generic-cxx03',
+#          'generic-cxx26',
+#          'generic-modules'
+#        ]
+#        cc: [  'clang-18' ]
+#        cxx: [ 'clang++-18' ]
+#        clang_tidy: [ 'ON' ]
+#        include:
+#          - config: 'generic-gcc'
+#            cc: 'gcc-13'
+#            cxx: 'g++-13'
+#            clang_tidy: 'OFF'
+#    steps:
+#      - uses: actions/checkout at v4
+#      - name: ${{ matrix.config }}.${{ matrix.cxx }}
+#        run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
+#        env:
+#          CC: ${{ matrix.cc }}
+#          CXX: ${{ matrix.cxx }}
+#          ENABLE_CLANG_TIDY: ${{ matrix.clang_tidy }}
+#      - uses: actions/upload-artifact at v3
+#        if: always()
+#        with:
+#          name: ${{ matrix.config }}-${{ matrix.cxx }}-results
+#          path: |
+#            **/test-results.xml
+#            **/*.abilist
+#            **/CMakeError.log
+#            **/CMakeOutput.log
+#            **/crash_diagnostics/*
+#  stage2:
+#    if: github.repository_owner == 'llvm'
+#    runs-on: libcxx-runners-8-set
+#    needs: [ stage1 ]
+#    continue-on-error: false
+#    strategy:
+#      fail-fast: false
+#      matrix:
+#        config: [
+#          'generic-cxx11',
+#          'generic-cxx14',
+#          'generic-cxx17',
+#          'generic-cxx20',
+#          'generic-cxx23'
+#        ]
+#        cc: [ 'clang-18' ]
+#        cxx: [ 'clang++-18' ]
+#        clang_tidy: [ 'ON' ]
+#        include:
+#          - config: 'generic-gcc-cxx11'
+#            cc: 'gcc-13'
+#            cxx: 'g++-13'
+#            clang_tidy: 'OFF'
+#          - config: 'generic-cxx23'
+#            cc: 'clang-16'
+#            cxx: 'clang++-16'
+#            clang_tidy: 'OFF'
+#          - config: 'generic-cxx23'
+#            cc: 'clang-17'
+#            cxx: 'clang++-17'
+#            clang_tidy: 'OFF'
+#    steps:
+#      - uses: actions/checkout at v4
+#      - name: ${{ matrix.config }}
+#        run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
+#        env:
+#          CC: ${{ matrix.cc }}
+#          CXX: ${{ matrix.cxx }}
+#          ENABLE_CLANG_TIDY: ${{ matrix.clang_tidy }}
+#      - uses: actions/upload-artifact at v3
+#        if: always()  # Upload artifacts even if the build or test suite fails
+#        with:
+#          name: ${{ matrix.config }}-results
+#          path: |
+#            **/test-results.xml
+#            **/*.abilist
+#            **/CMakeError.log
+#            **/CMakeOutput.log
+#            **/crash_diagnostics/*
+#  stage3:
+#    if: github.repository_owner == 'llvm'
+#    needs: [ stage1, stage2 ]
+#    continue-on-error: false
+#    strategy:
+#      fail-fast: false
+#      max-parallel: 8
+#      matrix:
+#        config: [
+#          'generic-abi-unstable',
+#          'generic-hardening-mode-debug',
+#          'generic-hardening-mode-extensive',
+#          'generic-hardening-mode-fast',
+#          'generic-hardening-mode-fast-with-abi-breaks',
+#          'generic-merged',
+#          'generic-modules-lsv',
+#          'generic-no-exceptions',
+#          'generic-no-experimental',
+#          'generic-no-filesystem',
+#          'generic-no-localization',
+#          'generic-no-random_device',
+#          'generic-no-threads',
+#          'generic-no-tzdb',
+#          'generic-no-unicode',
+#          'generic-no-wide-characters',
+#          'generic-no-rtti',
+#          'generic-optimized-speed',
+#          'generic-static',
+#          # TODO Find a better place for the benchmark and bootstrapping builds to live. They're either very expensive
+#          # or don't provide much value since the benchmark run results are too noise on the bots.
+#          'benchmarks',
+#          'bootstrapping-build'
+#        ]
+#        machine: [ 'libcxx-runners-8-set' ]
+#        std_modules: [ 'OFF' ]
+#        include:
+#        - config: 'generic-cxx26'
+#          machine: libcxx-runners-8-set
+#          std_modules: 'ON'
+#        - config: 'generic-asan'
+#          machine: libcxx-runners-8-set
+#          std_modules: 'OFF'
+#        - config: 'generic-tsan'
+#          machine: libcxx-runners-8-set
+#          std_modules: 'OFF'
+#        - config: 'generic-ubsan'
+#          machine: libcxx-runners-8-set
+#          std_modules: 'OFF'
+#        # Use a larger machine for MSAN to avoid timeout and memory allocation issues.
+#        - config: 'generic-msan'
+#          machine: libcxx-runners-8-set
+#          std_modules: 'OFF'
+#    runs-on: ${{ matrix.machine }}
+#    steps:
+#      - uses: actions/checkout at v4
+#      - name: ${{ matrix.config }}
+#        run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
+#        env:
+#          CC: clang-18
+#          CXX: clang++-18
+#          ENABLE_CLANG_TIDY: "OFF"
+#          ENABLE_STD_MODULES: ${{ matrix.std_modules }}
+#      - uses: actions/upload-artifact at v3
+#        if: always()
+#        with:
+#          name: ${{ matrix.config }}-results
+#          path: |
+#            **/test-results.xml
+#            **/*.abilist
+#            **/CMakeError.log
+#            **/CMakeOutput.log
+#            **/crash_diagnostics/*
+  buildkite-stage:
     if: github.repository_owner == 'llvm'
-    runs-on: libcxx-runners-8-set
+    runs-on: ubuntu-latest
+#    needs: [ stage1, stage2 ]
     continue-on-error: false
-    strategy:
-      fail-fast: false
-      matrix:
-        config: [
-          'generic-cxx03',
-          'generic-cxx26',
-          'generic-modules'
-        ]
-        cc: [  'clang-18' ]
-        cxx: [ 'clang++-18' ]
-        clang_tidy: [ 'ON' ]
-        include:
-          - config: 'generic-gcc'
-            cc: 'gcc-13'
-            cxx: 'g++-13'
-            clang_tidy: 'OFF'
     steps:
-      - uses: actions/checkout at v4
-      - name: ${{ matrix.config }}.${{ matrix.cxx }}
-        run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
+      - name: Trigger Buildkite Pipeline
+        uses: buildkite/trigger-pipeline-action at v2.0.0
         env:
-          CC: ${{ matrix.cc }}
-          CXX: ${{ matrix.cxx }}
-          ENABLE_CLANG_TIDY: ${{ matrix.clang_tidy }}
-      - uses: actions/upload-artifact at v3
-        if: always()
-        with:
-          name: ${{ matrix.config }}-${{ matrix.cxx }}-results
-          path: |
-            **/test-results.xml
-            **/*.abilist
-            **/CMakeError.log
-            **/CMakeOutput.log
-            **/crash_diagnostics/*
-  stage2:
-    if: github.repository_owner == 'llvm'
-    runs-on: libcxx-runners-8-set
-    needs: [ stage1 ]
-    continue-on-error: false
-    strategy:
-      fail-fast: false
-      matrix:
-        config: [
-          'generic-cxx11',
-          'generic-cxx14',
-          'generic-cxx17',
-          'generic-cxx20',
-          'generic-cxx23'
-        ]
-        cc: [ 'clang-18' ]
-        cxx: [ 'clang++-18' ]
-        clang_tidy: [ 'ON' ]
-        include:
-          - config: 'generic-gcc-cxx11'
-            cc: 'gcc-13'
-            cxx: 'g++-13'
-            clang_tidy: 'OFF'
-          - config: 'generic-cxx23'
-            cc: 'clang-16'
-            cxx: 'clang++-16'
-            clang_tidy: 'OFF'
-          - config: 'generic-cxx23'
-            cc: 'clang-17'
-            cxx: 'clang++-17'
-            clang_tidy: 'OFF'
-    steps:
-      - uses: actions/checkout at v4
-      - name: ${{ matrix.config }}
-        run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
-        env:
-          CC: ${{ matrix.cc }}
-          CXX: ${{ matrix.cxx }}
-          ENABLE_CLANG_TIDY: ${{ matrix.clang_tidy }}
-      - uses: actions/upload-artifact at v3
-        if: always()  # Upload artifacts even if the build or test suite fails
-        with:
-          name: ${{ matrix.config }}-results
-          path: |
-            **/test-results.xml
-            **/*.abilist
-            **/CMakeError.log
-            **/CMakeOutput.log
-            **/crash_diagnostics/*
-  stage3:
-    if: github.repository_owner == 'llvm'
-    needs: [ stage1, stage2 ]
-    continue-on-error: false
-    strategy:
-      fail-fast: false
-      max-parallel: 8
-      matrix:
-        config: [
-          'generic-abi-unstable',
-          'generic-hardening-mode-debug',
-          'generic-hardening-mode-extensive',
-          'generic-hardening-mode-fast',
-          'generic-hardening-mode-fast-with-abi-breaks',
-          'generic-merged',
-          'generic-modules-lsv',
-          'generic-no-exceptions',
-          'generic-no-experimental',
-          'generic-no-filesystem',
-          'generic-no-localization',
-          'generic-no-random_device',
-          'generic-no-threads',
-          'generic-no-tzdb',
-          'generic-no-unicode',
-          'generic-no-wide-characters',
-          'generic-no-rtti',
-          'generic-optimized-speed',
-          'generic-static',
-          # TODO Find a better place for the benchmark and bootstrapping builds to live. They're either very expensive
-          # or don't provide much value since the benchmark run results are too noise on the bots.
-          'benchmarks',
-          'bootstrapping-build'
-        ]
-        machine: [ 'libcxx-runners-8-set' ]
-        std_modules: [ 'OFF' ]
-        include:
-        - config: 'generic-cxx26'
-          machine: libcxx-runners-8-set
-          std_modules: 'ON'
-        - config: 'generic-asan'
-          machine: libcxx-runners-8-set
-          std_modules: 'OFF'
-        - config: 'generic-tsan'
-          machine: libcxx-runners-8-set
-          std_modules: 'OFF'
-        - config: 'generic-ubsan'
-          machine: libcxx-runners-8-set
-          std_modules: 'OFF'
-        # Use a larger machine for MSAN to avoid timeout and memory allocation issues.
-        - config: 'generic-msan'
-          machine: libcxx-runners-8-set
-          std_modules: 'OFF'
-    runs-on: ${{ matrix.machine }}
-    steps:
-      - uses: actions/checkout at v4
-      - name: ${{ matrix.config }}
-        run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
-        env:
-          CC: clang-18
-          CXX: clang++-18
-          ENABLE_CLANG_TIDY: "OFF"
-          ENABLE_STD_MODULES: ${{ matrix.std_modules }}
-      - uses: actions/upload-artifact at v3
-        if: always()
-        with:
-          name: ${{ matrix.config }}-results
-          path: |
-            **/test-results.xml
-            **/*.abilist
-            **/CMakeError.log
-            **/CMakeOutput.log
-            **/crash_diagnostics/*
+          BUILDKITE_API_ACCESS_TOKEN: ${{ secrets.TRIGGER_BK_BUILD_TOKEN }}
+          PIPELINE: "llvm-project/libcxx-ci"
diff --git a/libcxx/include/libcxx_trigger b/libcxx/include/libcxx_trigger
new file mode 100644
index 000000000000000..e69de29bb2d1d64



More information about the llvm-commits mailing list