Skip to content

ci: run independent head-image setup steps in parallel#4045

Merged
Piotr1215 merged 1 commit into
mainfrom
devops-1029/parallel-head-images
Jul 7, 2026
Merged

ci: run independent head-image setup steps in parallel#4045
Piotr1215 merged 1 commit into
mainfrom
devops-1029/parallel-head-images

Conversation

@Piotr1215

@Piotr1215 Piotr1215 commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

/kind enhancement

Summary

The build-head-images job installs Go, just, QEMU, Buildx and Cosign one after another before goreleaser, though none of them depend on each other. This backgrounds those five installs and waits on them before the build so they overlap. Head images build on every push to main, so the saving recurs far more often than on a release.

Every real ordering is preserved: the single registry login and the goreleaser build stay serial, and the wait barrier guarantees all tools are on PATH before goreleaser runs.

Why background + wait (not parallel:)

This is the head-images counterpart to the release pilot (#4042) under DEVOPS-1029. It uses background: + wait: rather than a parallel: block so actionlint keeps validating each step, including the action-pinning check; a parallel: block makes actionlint skip every nested step. Verified locally: with background: + wait:, a deliberately bad pin inside the group is still flagged.

actionlint

actionlint (v1.7.x) has no schema for the parallel-steps keys (GA 2026-06-25). A scoped ignore in .github/actionlint.yaml suppresses exactly the two resulting messages, only for this file, until actionlint ships support; then it is removed.

Validation

  • actionlint is clean locally with the scoped ignore (whole repo).
  • This workflow triggers only on push to main, so the parallel runtime is first exercised on the first head build after merge, not on this PR. Opening as draft, gated on the DEVOPS-1029 vcluster release pilot (ci: run independent release steps in parallel #4042) proving the approach on a real run first.

E2E Tests

Additional test suites

none

References DEVOPS-1029


Note

Low Risk
CI-only workflow timing change with explicit wait barrier and unchanged serial login/build; temporary actionlint suppressions are narrowly scoped to one file.

Overview
Speeds up build-head-images on every main push by overlapping five independent tool installs (Go, just, QEMU, Buildx, Cosign) via background: true step IDs and a wait: barrier before registry login and GoReleaser.

Ordering is unchanged in practice: GHCR login and the image build still run serially; the wait step ensures all setup tools are ready first (login stays serial to avoid a ~/.docker/config.json race).

actionlint gets a file-scoped ignore in .github/actionlint.yaml for the two false positives from background: / wait-only steps until actionlint supports the parallel-steps schema (DEVOPS-1029).

Reviewed by Cursor Bugbot for commit aa433b9. Bugbot is set up for automated code reviews on this repo. Configure here.

the publish head-images job installs go, just, qemu, buildx and cosign in sequence before goreleaser, though none depend on each other. backgrounding those installs and waiting on them before the build overlaps them, trimming setup time on every push to main. dependent ordering is preserved: the single registry login and goreleaser stay serial.

actionlint has no schema yet for the parallel-steps keys (GA 2026-06-25), so a scoped ignore in .github/actionlint.yaml suppresses the two resulting messages for this one file until actionlint ships support.

References DEVOPS-1029
@github-actions

Copy link
Copy Markdown

E2E Ginkgo Tests

Status Commit Run
Passed aa433b928927b9db8830fa3889d94b59a8867b03 View run #28433549355

@Piotr1215
Piotr1215 requested a review from sydorovdmytro July 2, 2026 08:32
@Piotr1215
Piotr1215 marked this pull request as ready for review July 2, 2026 08:32
@Piotr1215
Piotr1215 requested a review from a team as a code owner July 2, 2026 08:32
@Piotr1215
Piotr1215 merged commit f4f7ed7 into main Jul 7, 2026
24 of 28 checks passed
@Piotr1215
Piotr1215 deleted the devops-1029/parallel-head-images branch July 7, 2026 12:25
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