chore: migrate to Aspect CLI AXL tasks on ephemeral GHA runners - #276
Merged
Conversation
✨ Aspect Workflows Tasks📅 Sun May 24 16:14:25 UTC 2026 ✅ 25 successful tasks
⏱ Last updated Sun May 24 16:16:11 UTC 2026 · 📊 GitHub API quota 6,985/15,000 (47% used, resets in 46m, throttle 42×) |
gregmagolan
force-pushed
the
chore/aspect-cli-axl-ephemeral-migration
branch
from
May 24, 2026 06:40
709e4f2 to
ee39539
Compare
gregmagolan
force-pushed
the
chore/aspect-cli-axl-ephemeral-migration
branch
from
May 24, 2026 07:01
ee39539 to
12da33e
Compare
aspect_rules_lint transitively selects rules_go 0.42.0, which references
the legacy global `CcInfo` symbol that Bazel 9 removed ("The CcInfo
symbol has been removed, add the following ... load(\"@rules_cc//cc/common:cc_info.bzl\", "CcInfo")").
Add an explicit dev_dependency on rules_go 0.60.0 to override the
transitive selection — 0.60 loads CcInfo from the correct module.
gregmagolan
force-pushed
the
chore/aspect-cli-axl-ephemeral-migration
branch
from
May 24, 2026 08:30
c783280 to
c84f245
Compare
Use a GitHub Actions matrix on (workspace, bazel variant) instead of spelling out one job per combination. Per-workspace exclusions from the original config.yaml become matrix.exclude entries. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
aspect --task-key only allows [A-Za-z0-9_-], so `.` and `/` from the
workspace path break it. Make workspace a {path, slug} object and use
slug for the task-key (and disk-cache); path still drives
working-directory.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The launcher script's curl call was authenticated, but the aspect launcher binary itself also hits api.github.com to resolve which aspect-cli to install — and that call was anonymous, hitting the 60/hr rate limit on shared GHA egress IPs. Setting GITHUB_TOKEN at the workflow level makes it available to every command, including the aspect launcher. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
GITHUB_TOKEN is set at workflow-level env, so the per-line prefix on the curl install commands is redundant. Also drops the explanatory comment above GITHUB_TOKEN in env — the variable name is self-evident. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Pinned launcher resolves the aspect-cli version from .aspect/version.axl (now walks up the directory tree from sub-workspaces) instead of hitting api.github.com. Drop the GITHUB_TOKEN env so CI fails loudly if a future regression reintroduces the API call. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Migrate from Aspect Workflows (
.aspect/workflows/config.yaml) to the Aspect CLI on ephemeral GitHub Actions runners.Adds
.aspect/version.axl— pins the Aspect CLI to2026.21.30..aspect/config.axl— opts in to artifact uploads (testlogs/profile/BEP), sets--config=ciin CI, registers anaspect buildifiertask alias..github/workflows/ci-workflows.yaml— 25aspect testjobs (Bazel 7/8/9 × root + 8 e2e workspaces) plus abuildifierjob.tools/format/BUILD.bazelwithformat_multirun(name = "buildifier")(starlark-only).//:buildifieralias to//tools/format:buildifier.Removes / renames
.aspect/workflows/config.yamland.aspect/workflows/bazelrc(legacy Aspect Workflows config). The bazelrc settings are hoisted into the root.bazelrcunder:ciwith--lockfile_mode=off(since the lock is gitignored)..github/workflows/ci.yaml(vanilla-bazel matrix) preserved asci-vanilla-bazel.yaml..github/workflows/buildifier.yaml(replaced by thebuildifierjob inci-workflows.yaml).Notes
aspect_rules_lint 1.13.0added as a dev dep (needed forformat_multirun). Pinnedrules_go 0.60.0explicitly so Bazel 9 builds don't trip on the legacyCcInfoglobal symbol that gets pulled throughaspect_rules_lint's transitiverules_go 0.42.Changes are visible to end-users: no
Test plan