Skip to content

Commit

Permalink
[libc++] Move some macOS CI jobs to Github actions
Browse files Browse the repository at this point in the history
This is an attempt to decouple macOS CI testing from BuildKite, which
would make the maintenance of macOS CI easier and more accessible to
all contributors. Right now, the macOS CI is running entirely on machines
owned by the LLVM Foundation with only a small set of contributors having
direct access to them.

The story for performing back-deployment testing still needs to be
figured out, so for now we are retaining some jobs under BuildKite.
  • Loading branch information
ldionne committed Apr 17, 2024
1 parent 971ec1f commit e9563be
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 57 deletions.
34 changes: 34 additions & 0 deletions .github/workflows/libcxx-build-and-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ jobs:
**/CMakeError.log
**/CMakeOutput.log
**/crash_diagnostics/*
stage2:
if: github.repository_owner == 'llvm'
runs-on: libcxx-runners-8-set
Expand Down Expand Up @@ -134,6 +135,7 @@ jobs:
**/CMakeError.log
**/CMakeOutput.log
**/crash_diagnostics/*
stage3:
if: github.repository_owner == 'llvm'
needs: [ stage1, stage2 ]
Expand Down Expand Up @@ -199,6 +201,38 @@ jobs:
**/CMakeError.log
**/CMakeOutput.log
**/crash_diagnostics/*
macos:
runs-on: macos-latest
needs: [ stage1 ]
strategy:
fail-fast: false
matrix:
config: [
generic-cxx03,
generic-cxx23,
generic-modules,
apple-system
]
steps:
- uses: actions/checkout@v4
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: 'latest-stable'
- name: Build and test
run: |
bash libcxx/utils/ci/run-buildbot ${{ matrix.config }}
- uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0
if: always() # Upload artifacts even if the build or test suite fails
with:
name: macos-${{ matrix.config }}-results
path: |
**/test-results.xml
**/*.abilist
**/CMakeError.log
**/CMakeOutput.log
**/crash_diagnostics/*
windows:
runs-on: windows-2022
needs: [ stage1 ]
Expand Down
75 changes: 18 additions & 57 deletions libcxx/utils/ci/buildkite-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,47 +56,8 @@ environment_definitions:


steps:
- group: ':mac: Apple'
- group: ':mac: Apple Backdeployment'
steps:
- label: MacOS x86_64
command: libcxx/utils/ci/run-buildbot generic-cxx23
agents:
queue: libcxx-builders
os: macos
arch: x86_64
<<: *common

- label: MacOS arm64
command: libcxx/utils/ci/run-buildbot generic-cxx23
agents:
queue: libcxx-builders
os: macos
arch: arm64
<<: *common

- label: MacOS with Modules
command: libcxx/utils/ci/run-buildbot generic-modules
agents:
queue: libcxx-builders
os: macos
<<: *common

- label: MacOS with C++03
command: libcxx/utils/ci/run-buildbot generic-cxx03
agents:
queue: libcxx-builders
os: macos
<<: *common

# Build with the configuration we use to generate libc++.dylib on Apple platforms
- label: Apple system
command: libcxx/utils/ci/run-buildbot apple-system
agents:
queue: libcxx-builders
os: macos
arch: arm64 # This can technically run on any architecture, but we have more resources on arm64 so we pin this job to arm64
<<: *common

- label: Apple back-deployment macosx10.13
command: libcxx/utils/ci/run-buildbot apple-system-backdeployment-10.13
agents:
Expand All @@ -121,6 +82,23 @@ steps:
arch: x86_64 # TODO: Remove this once we are able to run back-deployment on arm64 again, since this isn't x86_64 specific
<<: *common

# TODO: Re-enable this once we've figured out how to run back-deployment testing on arm64 on recent OSes
# - label: "Apple back-deployment macosx11.0 arm64"
# command: "libcxx/utils/ci/run-buildbot apple-system-backdeployment-11.0"
# artifact_paths:
# - "**/test-results.xml"
# - "**/*.abilist"
# agents:
# queue: "libcxx-builders"
# os: "macos"
# arch: "arm64"
# retry:
# automatic:
# - exit_status: -1 # Agent was lost
# limit: 2
# timeout_in_minutes: 120


- group: ARM
steps:
- label: AArch64
Expand Down Expand Up @@ -230,20 +208,3 @@ steps:
queue: libcxx-builders
os: android
<<: *common


# TODO: Re-enable this once we've figured out how to run back-deployment testing on arm64 on recent OSes
# - label: "Apple back-deployment macosx11.0 arm64"
# command: "libcxx/utils/ci/run-buildbot apple-system-backdeployment-11.0"
# artifact_paths:
# - "**/test-results.xml"
# - "**/*.abilist"
# agents:
# queue: "libcxx-builders"
# os: "macos"
# arch: "arm64"
# retry:
# automatic:
# - exit_status: -1 # Agent was lost
# limit: 2
# timeout_in_minutes: 120

0 comments on commit e9563be

Please sign in to comment.