feat(ci3): give single-instance PR runs a parent dashboard log#23970
Merged
Conversation
Merge-queue runs route through `multi_job_run`, which pipes the runner-side orchestration into a parent dashboard log (`cache_log "CI run" $RUN_ID`) — so the spot/instance request is visible on ci.aztec-labs.com. Single-instance PR modes called `bootstrap_ec2` directly, so that output only reached the GitHub Actions console; you had to leave the dashboard to see which instance was created. Route the PR-facing single-instance modes (fast/docs/barretenberg/ barretenberg-full, full/full-no-test-cache, chonk-input-update) through `multi_job_run` with a single job, matching merge-queue. The job id is kept as `x-$cmd` so the `ci/<job>` GitHub status check name is unchanged. socket-fix keeps its raw (un-denoised) output but now pipes through `cache_log` so it too gets a parent log.
ludamad
approved these changes
Jun 10, 2026
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.
Problem
Merge-queue runs show a top-level "parent log" on the CI dashboard that includes the spot/instance request (which instance type was created, spot vs on-demand). Standard PR runs don't — to see what instance a PR run got, you have to leave the dashboard and dig into the GitHub Actions console.
Cause
The runner-side orchestration output (the
Requesting spot fleet…line fromaws_request_instance_type) is printed on the GA runner, before the remote build streams to its per-instanceCI_LOG_IDlog. Where that runner-side output lands depends on the path inci.sh:multi_job_run, which pipes everything into a parent dashboard log:parallel … 'run …' | DUP=1 cache_log "CI run" $RUN_ID. Eachrun()wrapsbootstrap_ec2withPARENT_LOG_ID=$RUN_ID, so the instance request lands in the parent log and the build log links underneath it.bootstrap_ec2directly — nocache_log, no parent log — so the instance request only reached the GA console.Change
Route the PR-facing single-instance modes through the same
multi_job_runpath (with a single job), so they get an identical"CI run" $RUN_IDparent log with the instance request visible and the build log linked beneath it:fast/docs/barretenberg/barretenberg-fullfull/full-no-test-cachechonk-input-updateThe job id is kept as
x-$cmd, so theci/<job>GitHub commit-status name is unchanged (no impact on required checks).socket-fix(which takes extra args and is an interactive debug mode) keeps its raw, un-denoised output but now pipes throughcache_logso it also gets a parent log.Behavior notes
INSTANCE_POSTFIXequal to the job id (e.g.x-fast), so the EC2Nametag becomes<ref>_amd64_x-fast. Same-mode re-runs still dedupe correctly.Validation
This is a structural reuse of the already-proven merge-queue path (
multi_job_run), andbash -n ci.shpasses. It can't be exercised locally (needs the GA + AWS orchestration), but this PR's own CI run is the test: thefastjob should now produce aCI runparent log on the dashboard showing the instance request, reachable without opening GitHub Actions.