[llvm] [libcxx] Add libc++ github actions workflow to replace buildkite (PR #71836)

via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 14 09:43:42 PST 2023


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-github-workflow

Author: Eric (EricWF)

<details>
<summary>Changes</summary>

This change ports almost all of the linux buildkite builders to github actions.

I would like to have this transition occur as soon as possible. 

---
Full diff: https://github.com/llvm/llvm-project/pull/71836.diff


2 Files Affected:

- (added) .github/workflows/libcxx-build-and-test.yaml (+137) 
- (modified) libcxx/utils/ci/run-buildbot (+2-2) 


``````````diff
diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
new file mode 100644
index 000000000000000..8083a346782946e
--- /dev/null
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -0,0 +1,137 @@
+name: Build and Test libc++
+
+on: pull_request
+concurrency:
+  group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
+  cancel-in-progress: true
+
+permissions:
+  checks: write
+
+env:
+  CMAKE: "/opt/bin/cmake"
+
+# Comment
+jobs:
+  stage1:
+    runs-on: libcxx-runners-16
+    continue-on-error: false
+    strategy:
+      fail-fast: true
+      matrix:
+        config: [ 'generic-cxx26', 'generic-cxx03', 'generic-modules' ]
+        cc: [ 'clang-18' ]
+        cxx: [ 'clang++-18' ]
+        include:
+          - config: 'generic-gcc'
+            cc: 'gcc-13'
+            cxx: 'g++-13'
+    steps:
+      - uses: actions/checkout at v4
+        with:
+          fetch-depth: 5
+      - name: ${{ matrix.config }}.${{ matrix.cxx }}
+        run: libcxx/utils/ci/run-buildbot ${{ matrix.config }}
+        env:
+          CC: ${{ matrix.cc }}
+          CXX: ${{ matrix.cxx }}
+      - uses: actions/upload-artifact at v3
+        if: always()
+        with:
+          name: ${{ matrix.config }}-${{ matrix.cxx }}-results
+          path: |
+            "**/test-results.xml"
+            "**/*.abilist"
+  stage2:
+    runs-on: libcxx-runners-16
+    needs: [ stage1  ]
+    continue-on-error: false
+    strategy:
+      fail-fast: true
+      max-parallel: 4
+      matrix:
+        config: [ 'generic-cxx11', 'generic-cxx14', 'generic-cxx17',
+                  'generic-cxx20', 'generic-cxx23' ]
+        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: 'clang-18'
+          CXX: 'clang++-18'
+      - uses: actions/upload-artifact at v3
+        if: always()
+        with:
+          name: ${{ matrix.config }}-results
+          path: |
+            "**/test-results.xml"
+            "**/*.abilist"
+  stage3-sanitizers:
+    runs-on: libcxx-runners-16
+    needs: [ stage1, stage2 ]
+    continue-on-error: false
+    strategy:
+      fail-fast: true
+      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
+      - uses: actions/upload-artifact at v3
+        if: always()
+        with:
+          name: ${{ matrix.config }}-results
+          path: |
+            "**/test-results.xml"
+            "**/*.abilist"
+  stage3-remainder:
+    runs-on: libcxx-runners-8
+    needs: [ stage1, stage2 ]
+    continue-on-error: false
+    strategy:
+      fail-fast: true
+      max-parallel: 8
+      matrix:
+        config: [ 'generic-no-threads', 'generic-no-filesystem', 'generic-no-random_device',
+                 'generic-no-localization', 'generic-no-unicode', 'generic-no-wide-characters',
+                 'generic-no-experimental', 'generic-no-exceptions',
+                 'generic-abi-unstable',  'generic-hardening-mode-fast',
+                 'generic-hardening-mode-fast-with-abi-breaks', 'generic-hardening-mode-extensive',
+                'generic-hardening-mode-debug',
+                'generic-with_llvm_unwinder',
+                'generic-modules-lsv', 'generic-no-tzdb']
+    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
+      - uses: actions/upload-artifact at v3
+        if: always()
+        with:
+          name: ${{ matrix.config }}-results
+          path: |
+            "**/test-results.xml"
+            "**/*.abilist"
+  
diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot
index fe99388a799be8a..d1b1e0f2e05fe47 100755
--- a/libcxx/utils/ci/run-buildbot
+++ b/libcxx/utils/ci/run-buildbot
@@ -137,7 +137,7 @@ function generate-cmake-base() {
           -DLIBUNWIND_ENABLE_WERROR=YES \
           -DLIBCXX_ENABLE_CLANG_TIDY=${ENABLE_CLANG_TIDY} \
           ${ENABLE_STD_MODULES} \
-          -DLLVM_LIT_ARGS="-sv --xunit-xml-output test-results.xml --timeout=1500 --time-tests" \
+          -DLLVM_LIT_ARGS="-v --xunit-xml-output test-results.xml --timeout=1500 --time-tests" \
           "${@}"
 }
 
@@ -372,7 +372,7 @@ bootstrapping-build)
           -DLLVM_TARGETS_TO_BUILD="host" \
           -DRUNTIMES_BUILD_ALLOW_DARWIN=ON \
           -DLLVM_ENABLE_ASSERTIONS=ON \
-          -DLLVM_LIT_ARGS="-sv --xunit-xml-output test-results.xml --timeout=1500 --time-tests"
+          -DLLVM_LIT_ARGS="-v --xunit-xml-output test-results.xml --timeout=1500 --time-tests"
 
     echo "+++ Running the libc++ and libc++abi tests"
     ${NINJA} -vC "${BUILD_DIR}" check-runtimes

``````````

</details>


https://github.com/llvm/llvm-project/pull/71836


More information about the llvm-commits mailing list