Skip to content

perf: parallelize container image builds in release workflow#909

Merged
Mossaka merged 1 commit intomainfrom
feat/parallel-image-builds
Feb 16, 2026
Merged

perf: parallelize container image builds in release workflow#909
Mossaka merged 1 commit intomainfrom
feat/parallel-image-builds

Conversation

@Mossaka
Copy link
Collaborator

@Mossaka Mossaka commented Feb 16, 2026

Summary

  • Split the monolithic build-and-release job into 6 jobs: setup, build-squid, build-agent, build-api-proxy, build-agent-act, and release
  • All 4 container image builds now run in parallel after the version extraction setup job
  • The release job (binaries, changelog, GitHub Release) waits for all image builds to complete
  • Preserves all existing behavior: multi-arch platforms, cache settings, no-cache flags, cosign signing, SBOM generation

Motivation

With ARM64 QEMU emulation added in #869, each multi-arch image build takes several minutes. Running all 4 sequentially made the release workflow unnecessarily slow. Parallelizing the builds cuts total time from ~4x single-build-time down to ~1x (the slowest build).

Job dependency graph

setup ──┬── build-squid ────────┐
        ├── build-agent ────────┤
        ├── build-api-proxy ────┼── release
        └── build-agent-act ────┘

Test plan

  • Verify YAML syntax is valid
  • Confirm all action SHAs match the original workflow
  • Confirm version outputs are correctly passed between jobs via needs.setup.outputs.*
  • Verify each build job has its own GHCR login, buildx, QEMU (where needed), and cosign setup
  • Verify agent-act skips QEMU (amd64-only)
  • Trigger a test release to validate end-to-end

🤖 Generated with Claude Code

Split the monolithic build-and-release job into 6 parallel jobs:
- setup: Extract version from tag/package.json
- build-squid: Build + push + sign + SBOM squid image (amd64+arm64)
- build-agent: Build + push + sign + SBOM agent image (amd64+arm64)
- build-api-proxy: Build + push + sign + SBOM api-proxy image (amd64+arm64)
- build-agent-act: Build + push + sign + SBOM agent-act image (amd64 only)
- release: Create binaries, release notes, and GitHub Release

All 4 image builds run in parallel after setup, and the release job
waits for all builds to complete. This significantly reduces total
release time since each multi-arch build takes several minutes,
especially with ARM64 QEMU emulation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings February 16, 2026 18:35
@github-actions
Copy link
Contributor

github-actions bot commented Feb 16, 2026

📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤

@github-actions
Copy link
Contributor

github-actions bot commented Feb 16, 2026

🎬 THE ENDSmoke Claude MISSION: ACCOMPLISHED! The hero saves the day! ✨

@github-actions
Copy link
Contributor

github-actions bot commented Feb 16, 2026

✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟

@github-actions
Copy link
Contributor

✅ Coverage Check Passed

Overall Coverage

Metric Base PR Delta
Lines 82.71% 82.86% 📈 +0.15%
Statements 82.63% 82.78% 📈 +0.15%
Functions 82.74% 82.74% ➡️ +0.00%
Branches 74.78% 74.88% 📈 +0.10%
📁 Per-file Coverage Changes (1 files)
File Lines (Before → After) Statements (Before → After)
src/docker-manager.ts 84.1% → 84.7% (+0.56%) 83.4% → 83.9% (+0.54%)

Coverage comparison generated by scripts/ci/compare-coverage.ts

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refactors the release GitHub Actions workflow to reduce total release time by parallelizing container image builds while keeping release artifacts and GitHub Release creation gated on all builds completing.

Changes:

  • Split the previous single build-and-release job into setup, 4 parallel image build jobs, and a final release job.
  • Route version information through needs.setup.outputs.* so all downstream jobs consistently tag images and releases.
  • Move the Node/TypeScript build steps to the release job (images build independently from the repo’s TypeScript build outputs).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions
Copy link
Contributor

Bun Build Test Results

Project Install Tests Status
elysia 1/1 PASS
hono 1/1 PASS

Overall: PASS

All Bun projects built and tested successfully with Bun v1.3.9.

AI generated by Build Test Bun

@github-actions
Copy link
Contributor

Smoke Test Results

✅ GitHub MCP: Retrieved 2 merged PRs

✅ Playwright: Verified github.com title contains "GitHub"
✅ File Writing: Created test file successfully
✅ Bash Tool: Verified file content

Status: PASS

cc @Mossaka (PR author)

AI generated by Smoke Copilot

@github-actions
Copy link
Contributor

Go Build Test Results

Project Download Tests Status
color 1/1 PASS
env 1/1 PASS
uuid 1/1 PASS

Overall: PASS

All Go projects built and tested successfully.

AI generated by Build Test Go

@github-actions
Copy link
Contributor

Node.js Build Test Results

Project Install Tests Status
clsx PASS PASS
execa PASS PASS
p-limit PASS PASS

Overall: PASS

All Node.js test projects built and tested successfully.

AI generated by Build Test Node.js

@github-actions
Copy link
Contributor

Smoke Test Results

Last 2 merged PRs:

✅ GitHub MCP: PASS
✅ Playwright: PASS (title: "GitHub · Change is constant. GitHub keeps you ahead. · GitHub")
✅ File Writing: PASS
✅ Bash Tool: PASS

Overall: PASS

AI generated by Smoke Claude

@github-actions
Copy link
Contributor

.NET Build Test Results ✅

Project Restore Build Run Status
hello-world PASS
json-parse PASS

Overall: PASS

All .NET projects successfully restored, built, and executed.

AI generated by Build Test .NET

@github-actions
Copy link
Contributor

Deno Build Test Results

Project Tests Status
oak 1/1 ✅ PASS
std 1/1 ✅ PASS

Overall: ✅ PASS

All Deno tests completed successfully.

AI generated by Build Test Deno

@github-actions
Copy link
Contributor

C++ Build Test Results

Project CMake Build Status
fmt PASS
json PASS

Overall: PASS

All C++ projects built successfully.

AI generated by Build Test C++

@github-actions
Copy link
Contributor

Rust Build Test Results

Project Build Tests Status
fd 1/1 PASS
zoxide 1/1 PASS

Overall: PASS

All Rust projects built successfully and all tests passed.

AI generated by Build Test Rust

@github-actions
Copy link
Contributor

Java Build Test Results

Project Compile Tests Status
gson 1/1 PASS
caffeine 1/1 PASS

Overall: PASS

All Java projects compiled and tested successfully through the AWF firewall.

AI generated by Build Test Java

@github-actions
Copy link
Contributor

feat: add ARM64 multi-architecture container builds | feat: add AWF_ONE_SHOT_TOKEN_DEBUG env var for silent-by-default logging
GitHub MCP ✅
Safeinputs GH ✅
Playwright ✅
Tavily search ❌
File write ✅
Bash cat ✅
Discussion comment ✅
Build ✅
Overall status: FAIL

AI generated by Smoke Codex

@Mossaka Mossaka merged commit b3356df into main Feb 16, 2026
90 checks passed
@Mossaka Mossaka deleted the feat/parallel-image-builds branch February 16, 2026 23:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants