Skip to content

Push firecracker to all environments on release#20

Open
djeebus wants to merge 3 commits intomainfrom
push-firecracker-on-release
Open

Push firecracker to all environments on release#20
djeebus wants to merge 3 commits intomainfrom
push-firecracker-on-release

Conversation

@djeebus
Copy link
Copy Markdown
Contributor

@djeebus djeebus commented Apr 18, 2026

No description provided.

@cursor
Copy link
Copy Markdown

cursor Bot commented Apr 18, 2026

PR Summary

Medium Risk
Changes the release pipeline’s build/deploy control flow and GCP auth configuration, which can affect what gets built, published, and pushed to staging/juliett/foxtrot. Risk is mostly around CI/CD behavior changes (skipped builds, credential sourcing) rather than application runtime code.

Overview
This PR updates the manual release workflow to always run build, publish, and deploy jobs and push release artifacts to all environments (staging, juliett, foxtrot), instead of conditionally skipping the pipeline via a skip_build output.

Build skipping is moved from scripts/validate.py into the workflow: each build matrix entry now checks GitHub Release assets and skips the build/upload steps per-architecture if the corresponding firecracker-${arch} asset already exists.

In deploy, GCP Workload Identity auth is switched from secrets.* to vars.* and now includes an explicit service_account. The validation script and tests are simplified by removing release-asset detection logic and replacing it with a generate_build_matrix helper that only reflects requested architectures.

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

Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 553b1f8. Configure here.

run: ./build.sh "${{ needs.validate.outputs.commit_hash }}" "${{ needs.validate.outputs.version_name }}" "${{ matrix.arch }}"

- name: Upload build artifact
if: steps.check_release.outputs.skip != 'true'
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Publish job fails when all artifacts already exist

High Severity

When all requested artifacts already exist in the release, both build matrix jobs skip the upload-artifact step, producing zero workflow artifacts. The publish job's actions/download-artifact@v8 step then fails with "No artifacts found" (this is documented v4+ behavior), which blocks the deploy job since it declares needs: [validate, publish]. This defeats the PR's stated goal of deploying to all environments on re-runs where artifacts already exist.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 553b1f8. Configure here.

Comment thread scripts/validate.py

release_exists = f"firecracker-{arch}" in release_assets

print(f"Release: {arch} artifact {'exists' if release_exists else 'missing'}", file=sys.stderr)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Dead --github-repo argument after removing its only consumer

Low Severity

The --github-repo argument is still defined in the argument parser, but args.github_repo is never referenced anywhere after this diff removed check_existing_artifacts, which was its only consumer. This is dead code left behind during the refactoring that could confuse future developers into thinking repository context is still used by the validation script.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 553b1f8. Configure here.

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.

1 participant