[libcxx-commits] [libcxx] [llvm] [libc++][WIP] Move to Github hosted builders (PR #109720)

Louis Dionne via libcxx-commits libcxx-commits at lists.llvm.org
Wed Sep 25 10:23:36 PDT 2024


https://github.com/ldionne updated https://github.com/llvm/llvm-project/pull/109720

>From bdbcbc67dbe2dfaa9167499f8dafb2ef6bbde8a9 Mon Sep 17 00:00:00 2001
From: Louis Dionne <ldionne.2 at gmail.com>
Date: Mon, 23 Sep 2024 17:23:35 -0400
Subject: [PATCH 1/2] [libc++][WIP] Move to Github hosted builders

Libc++ experiences periodic outages of our Github actions builders,
which are quite disruptive. Unfortunately, the Github self-hosted
runner setup is very opaque. It works extremely well when it works,
but most contributors are unable to troubleshoot issues related to
the setup when they happen.

This patch attempts to move the libc++ builders to normal Github
hosted runners. This is primarily to evaluate the feasibility of
such a change, which would simplify our CI setup but may not scale
sufficiently for our needs.
---
 .github/workflows/libcxx-build-and-test.yaml  | 30 +++++++++----------
 libcxx/test/libcxx/transitive_includes.gen.py |  3 ++
 2 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml
index b5e60781e00064..2e8cdbda304a4e 100644
--- a/.github/workflows/libcxx-build-and-test.yaml
+++ b/.github/workflows/libcxx-build-and-test.yaml
@@ -49,7 +49,9 @@ env:
 jobs:
   stage1:
     if: github.repository_owner == 'llvm'
-    runs-on: libcxx-runners-8-set
+    runs-on: ubuntu-latest
+    container:
+      image: ghcr.io/libcxx/actions-builder:fozzie-live
     continue-on-error: false
     strategy:
       fail-fast: false
@@ -84,7 +86,9 @@ jobs:
             **/crash_diagnostics/*
   stage2:
     if: github.repository_owner == 'llvm'
-    runs-on: libcxx-runners-8-set
+    runs-on: ubuntu-latest
+    container:
+      image: ghcr.io/libcxx/actions-builder:fozzie-live
     needs: [ stage1 ]
     continue-on-error: false
     strategy:
@@ -136,12 +140,15 @@ jobs:
       matrix:
         config: [
           'generic-abi-unstable',
+          'generic-asan',
+          'generic-cxx26',
           '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-msan',
           'generic-no-exceptions',
           'generic-no-experimental',
           'generic-no-filesystem',
@@ -155,25 +162,16 @@ jobs:
           'generic-no-rtti',
           'generic-optimized-speed',
           'generic-static',
+          'generic-tsan',
+          'generic-ubsan',
           # 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' ]
-        include:
-        - config: 'generic-cxx26'
-          machine: libcxx-runners-8-set
-        - config: 'generic-asan'
-          machine: libcxx-runners-8-set
-        - config: 'generic-tsan'
-          machine: libcxx-runners-8-set
-        - config: 'generic-ubsan'
-          machine: libcxx-runners-8-set
-        # Use a larger machine for MSAN to avoid timeout and memory allocation issues.
-        - config: 'generic-msan'
-          machine: libcxx-runners-8-set
-    runs-on: ${{ matrix.machine }}
+    runs-on: ubuntu-latest
+    container:
+      image: ghcr.io/libcxx/actions-builder:fozzie-live
     steps:
       - uses: actions/checkout at v4
       - name: ${{ matrix.config }}
diff --git a/libcxx/test/libcxx/transitive_includes.gen.py b/libcxx/test/libcxx/transitive_includes.gen.py
index 22075364bf1b79..35df07d44f5eb7 100644
--- a/libcxx/test/libcxx/transitive_includes.gen.py
+++ b/libcxx/test/libcxx/transitive_includes.gen.py
@@ -72,6 +72,9 @@
 //--- {header}.sh.cpp
 {lit_header_restrictions.get(header, '')}
 
+// TOOD: Re-enable these tests once we understand why they fail on the Github-hosted runners
+// UNSUPPORTED: buildhost=linux
+
 // TODO: Fix this test to make it work with localization or wide characters disabled
 // UNSUPPORTED: no-localization, no-wide-characters, no-threads, no-filesystem, libcpp-has-no-experimental-tzdb, no-tzdb
 

>From 269cb141b91b4bde6e4d44968468df75a03e1caa Mon Sep 17 00:00:00 2001
From: Louis Dionne <ldionne.2 at gmail.com>
Date: Mon, 23 Sep 2024 17:36:33 -0400
Subject: [PATCH 2/2] Touch libc++ file to trigger CI

---
 libcxx/foo | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 libcxx/foo

diff --git a/libcxx/foo b/libcxx/foo
new file mode 100644
index 00000000000000..e69de29bb2d1d6



More information about the libcxx-commits mailing list