Skip to content

Switch CI from Buildkite to GitHub Actions - #106

Merged
oscardssmith merged 5 commits into
mainfrom
switch-to-github-actions
Aug 25, 2026
Merged

Switch CI from Buildkite to GitHub Actions#106
oscardssmith merged 5 commits into
mainfrom
switch-to-github-actions

Conversation

@gbaraldi

@gbaraldi gbaraldi commented Aug 5, 2026

Copy link
Copy Markdown
Member

Ports the benchmark pipeline to GitHub-hosted runners using the open-source Julia actions (julia-actions/setup-julia@v2, julia-actions/cache@v2), replacing the Buildkite pipeline that ran on the private juliaecosystem queue.

Carried over unchanged from the Buildkite matrix:

  • nightly × {serial, multithreaded} × all, plus the slow/bigint adjustment
  • the 60-minute timeout and the [skip tests] commit-message escape hatch
  • results.csv uploaded as an artifact per matrix entry (named results-<version>-<benchmark>-<category>)

Additions that come free with GHA: pull_request triggers (Buildkite only ran on push), per-ref concurrency cancellation, and the Julia depot cache between runs.

One honest caveat for reviewers: GitHub-hosted runners are shared 4-vCPU VMs, so timing numbers will be noisier than on the Buildkite fleet — this CI is best read as a does-it-run/regression smoke check, with real measurements still done on dedicated hardware.

Disclosure: this PR was written with the assistance of generative AI (Claude).

🤖 Generated with Claude Code

Port the benchmark pipeline to GitHub-hosted runners using the open-source
Julia actions (julia-actions/setup-julia, julia-actions/cache), replacing
the Buildkite pipeline that ran on the private juliaecosystem queue. The
matrix (nightly x serial/multithreaded/all plus slow/bigint), the 60-minute
timeout, the [skip tests] escape hatch and the results.csv artifact are
carried over unchanged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CRecnQX4hRN8ecrgHytLHT
@gbaraldi

gbaraldi commented Aug 5, 2026

Copy link
Copy Markdown
Member Author

Note for merging: GitHub Actions appears to be disabled for this repository (no workflows register and the head commit gets zero check runs — only Buildkite responded to the PR). A repo/org admin needs to enable it under Settings → Actions → General before or when this merges, or the new workflow will silently never run.

@oscardssmith

Copy link
Copy Markdown
Collaborator

do we need a token?

gbaraldi and others added 3 commits August 25, 2026 13:10
CI on hosted runners is meant to check that every benchmark still runs,
not to measure performance. The previous run died in `append` when the
7 GB runner hit memory pressure and the thrashing callback abort()ed.

`util/utils.jl` now reads GCBENCH_SCALE (default 1 = full workload) and
exposes `scaled(n)` / `scaled_log2(k)`; each benchmark's top-level size
goes through one of them. The GitHub workflow sets GCBENCH_SCALE=0.05
and `--runs=1`, which brings every job to ~1 minute and ~1 GB peak RSS.
Running without the variable is unchanged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@oscardssmith
oscardssmith merged commit 5f95080 into main Aug 25, 2026
5 of 7 checks passed
@oscardssmith
oscardssmith deleted the switch-to-github-actions branch August 25, 2026 17:25
@topolarity

Copy link
Copy Markdown

Thanks @gbaraldi @oscardssmith !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants