From 9eb9876c765eb2a3c99e712df5b221874bae6d3a Mon Sep 17 00:00:00 2001 From: ChrisRackauckas Date: Mon, 23 Mar 2026 10:26:50 -0100 Subject: [PATCH 1/2] Replace Buildkite CI with GitHub Actions self-hosted GPU runners - Remove `.buildkite/runtests.yml` (GPU and Correctness tests on Buildkite) - Add `.github/workflows/GPU.yml` running GPU tests on `[self-hosted, Linux, X64, gpu]` runners - Coverage is now collected via `julia-processcoverage` and uploaded to Codecov Part of the SciML-wide migration from Buildkite to GitHub Actions. Co-Authored-By: Claude Opus 4.6 (1M context) --- .buildkite/runtests.yml | 35 ----------------------------------- .github/workflows/GPU.yml | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 35 deletions(-) delete mode 100644 .buildkite/runtests.yml create mode 100644 .github/workflows/GPU.yml diff --git a/.buildkite/runtests.yml b/.buildkite/runtests.yml deleted file mode 100644 index 9f924f44..00000000 --- a/.buildkite/runtests.yml +++ /dev/null @@ -1,35 +0,0 @@ -steps: - - label: "GPU" - plugins: - - JuliaCI/julia#v1: - version: "1" - - JuliaCI/julia-test#v1: - coverage: false # 1000x slowdown - agents: - queue: "juliagpu" - cuda: "*" - env: - GROUP: 'GPU' - JULIA_PKG_SERVER: "" # it often struggles with our large artifacts - # SECRET_CODECOV_TOKEN: "..." - timeout_in_minutes: 60 - # Don't run Buildkite if the commit message includes the text [skip tests] - if: build.message !~ /\[skip tests\]/ - - - label: "Correctness" - plugins: - - JuliaCI/julia#v1: - version: "1.10" - - JuliaCI/julia-test#v1: - coverage: true - julia_args: "--threads=auto" - agents: - os: "linux" - queue: "juliaecosystem" - arch: "x86_64" - exclusive: true - env: - GROUP: 'Correctness' - timeout_in_minutes: 120 - # Don't run Buildkite if the commit message includes the text [skip tests] - if: build.message !~ /\[skip tests\]/ diff --git a/.github/workflows/GPU.yml b/.github/workflows/GPU.yml new file mode 100644 index 00000000..e8f4a604 --- /dev/null +++ b/.github/workflows/GPU.yml @@ -0,0 +1,38 @@ +name: "GPU Tests" + +on: + pull_request: + branches: + - master + paths-ignore: + - 'docs/**' + push: + branches: + - master + paths-ignore: + - 'docs/**' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.ref_name != github.event.repository.default_branch || github.ref != 'refs/tags/v*' }} + +jobs: + gpu-tests: + name: "GPU Tests" + runs-on: [self-hosted, Linux, X64, gpu] + timeout-minutes: 60 + steps: + - uses: actions/checkout@v6 + - uses: julia-actions/setup-julia@v2 + with: + version: "1" + - uses: julia-actions/julia-buildpkg@v1 + - uses: julia-actions/julia-runtest@v1 + env: + GROUP: "GPU" + - uses: julia-actions/julia-processcoverage@v1 + - uses: codecov/codecov-action@v5 + with: + files: lcov.info + token: ${{ secrets.CODECOV_TOKEN }} + fail_ci_if_error: false From 00e6698038536b638cbd6c0dfb5a135ee5778a92 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas Date: Mon, 23 Mar 2026 11:00:17 -0100 Subject: [PATCH 2/2] Fix GPU test group env var to match test file (CUDA, not GPU) The test file checks GROUP == "CUDA" for GPU tests. Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/GPU.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/GPU.yml b/.github/workflows/GPU.yml index e8f4a604..f7105faa 100644 --- a/.github/workflows/GPU.yml +++ b/.github/workflows/GPU.yml @@ -29,7 +29,7 @@ jobs: - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 env: - GROUP: "GPU" + GROUP: "CUDA" - uses: julia-actions/julia-processcoverage@v1 - uses: codecov/codecov-action@v5 with: