Skip to content

feat(ci3): give single-instance PR runs a parent dashboard log#23970

Merged
ludamad merged 1 commit into
nextfrom
ci3-pr-parent-log
Jun 10, 2026
Merged

feat(ci3): give single-instance PR runs a parent dashboard log#23970
ludamad merged 1 commit into
nextfrom
ci3-pr-parent-log

Conversation

@charlielye

Copy link
Copy Markdown
Contributor

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 from aws_request_instance_type) is printed on the GA runner, before the remote build streams to its per-instance CI_LOG_ID log. Where that runner-side output lands depends on the path in ci.sh:

  • Merge-queue goes through multi_job_run, which pipes everything into a parent dashboard log: parallel … 'run …' | DUP=1 cache_log "CI run" $RUN_ID. Each run() wraps bootstrap_ec2 with PARENT_LOG_ID=$RUN_ID, so the instance request lands in the parent log and the build log links underneath it.
  • PR modes called bootstrap_ec2 directly — no cache_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_run path (with a single job), so they get an identical "CI run" $RUN_ID parent log with the instance request visible and the build log linked beneath it:

  • fast / docs / barretenberg / barretenberg-full
  • full / full-no-test-cache
  • chonk-input-update

The job id is kept as x-$cmd, so the ci/<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 through cache_log so it also gets a parent log.

Behavior notes

  • PR-run GA console output is now denoised (condensed progress) for the converted modes, matching merge-queue; the full log lives in the dashboard parent log.
  • Instances for these modes now carry an INSTANCE_POSTFIX equal to the job id (e.g. x-fast), so the EC2 Name tag 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), and bash -n ci.sh passes. It can't be exercised locally (needs the GA + AWS orchestration), but this PR's own CI run is the test: the fast job should now produce a CI run parent log on the dashboard showing the instance request, reachable without opening GitHub Actions.

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 ludamad added this pull request to the merge queue Jun 10, 2026
Merged via the queue into next with commit d6db011 Jun 10, 2026
20 checks passed
@ludamad ludamad deleted the ci3-pr-parent-log branch June 10, 2026 14:55
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.

2 participants