Repository navigation
fix: prebuild local images before smoke services execution - #10771
Merged
Merged
Conversation
Reuse the existing Smoke Copilot source-image preparation with a shared script. Give Smoke Services a separate bounded build step while keeping its ten-minute agent timeout and run-specific local image selection. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: abd2228c-5c4a-4d12-970d-1a1af87aa3e9
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Both smoke workflows invoke a workspace-relative helper after checking out PR heads that may lack it, causing runs to fail before image preparation or service checks.
1 open issue
What changed in this PR
This PR moves Smoke Services’ cold local image builds outside its ten-minute agent execution budget and shares image preparation logic with Smoke Copilot.
Changes:
- Adds a shared script to build and inspect run-specific Squid, agent, and API-proxy images.
- Adds a separate 35-minute Services setup step and selects prepared images with
--skip-pull. - Updates generated workflows and expands regression coverage for preparation failures, ordering, and image selection.
| File | Description |
|---|---|
scripts/ci/smoke-image-preparation.test.ts |
Extends preparation checks to Services and all build/inspect failures. |
scripts/ci/build-smoke-images.sh |
Centralizes local image builds, inspection, and tag publication. |
scripts/ci/apply-general-workflow-patches.ts |
Extends prepared-image handling to Smoke Services. |
.github/workflows/smoke-services.md |
Adds bounded image preparation before agent execution. |
.github/workflows/smoke-services.lock.yml |
Adds setup and switches execution to prepared images. |
.github/workflows/smoke-copilot.md |
Replaces inline preparation with the shared script. |
.github/workflows/smoke-copilot.lock.yml |
Reflects the shared-script invocation in the generated workflow. |
Review effort: Max
| steps: | ||
| - name: Build local AWF smoke images | ||
| timeout-minutes: 35 | ||
| run: bash scripts/ci/build-smoke-images.sh |
Collaborator
Author
|
@copilot address review feedback |
Contributor
✅ Coverage Check PassedOverall Coverage
📁 Per-file Coverage Changes (1 files)
Coverage comparison generated by |
Contributor
|
✅ Copilot review passed with no inline comments. @lpcox Add the |
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.

Summary
Move Smoke Services' cold local image builds out of the agent's ten-minute execution budget into a separately bounded 35-minute setup step. Reuse the existing Smoke Copilot preparation mechanism through one shared script.
Setup builds and inspects Squid, agent and API-proxy images from the checked-out source, matching Compose's UID/GID build arguments. Execution selects those run/attempt-specific local images with
--skip-pull, without rebuilding or falling back to released AWF images. Preparation fails closed before publishing the image tag. Services' ten-minute execution timeout, firewall, service checks, safe outputs and release-mode workflows are unchanged.The failing Smoke Services job timed out while Squid was still compiling; the agent had not reached the Redis/PostgreSQL checks.
Validation
queue,workflow_ref,copilot-requests).gh aw compile --dry-runrejects existing authored host steps/post-steps; no diagnostic lock was emitted. Optional scanners were not run by dry-run.Hosted Linux image-build timing and live service connectivity are not reverified on this macOS host. No workflow was dispatched.
Security review
Read-only authored-source and final-lock review: PASS, no confirmed vulnerabilities; credentials, permissions, firewall and safe-output controls preserved. This does not establish hosted execution or authorize dispatch.