ci: publish busybox binaries to GCS public builds bucket#1
Conversation
Add a publish job that uploads both amd64 and arm64 busybox binaries to
the GCS public builds bucket (e2b-prod-public-builds/busybox/{arch}/busybox)
after a successful build. This mirrors how fc-kernels publishes to GCS.
Previously, busybox was only available via GitHub releases and had to be
fetched at compile time for go:embed. The infra repo is moving to runtime
disk reads (like kernels and firecracker), which requires busybox to be
in the GCS bucket for host-init downloads and gcsfuse/s3fs mounts.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
PR SummaryMedium Risk Overview Adds a Reviewed by Cursor Bugbot for commit dc8070c. Bugbot is set up for automated code reviews on this repo. Configure here. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
Autofix Details
Bugbot Autofix prepared fixes for both issues found in the latest run.
- ✅ Fixed: Deprecated v1 Google actions will fail on runner
- ✅ Fixed: GCS failure blocks previously-working GitHub release creation
- Added continue-on-error: true to both GCS steps so that failures will not block the subsequent GitHub release steps from executing.
Or push these changes by commenting:
@cursor push 3a8abe9bda
Preview (3a8abe9bda)
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -71,13 +71,17 @@
ls -laR gcs-upload/
- name: Setup GCP auth
- uses: google-github-actions/auth@v1
+ id: gcp-auth
+ uses: google-github-actions/auth@v3
+ continue-on-error: true
with:
workload_identity_provider: ${{ secrets.GCP_WORKLOAD_IDENTITY_PROVIDER }}
service_account: ${{ secrets.GCP_SERVICE_ACCOUNT_EMAIL }}
- name: Upload to GCS
- uses: google-github-actions/upload-cloud-storage@v1
+ if: steps.gcp-auth.outcome == 'success'
+ uses: google-github-actions/upload-cloud-storage@v3
+ continue-on-error: true
with:
path: gcs-upload
destination: ${{ vars.GCP_BUCKET_NAME }}/busyboxThis Bugbot Autofix run was free. To enable autofix for future PRs, go to the Cursor dashboard.
Upload to busybox/{version}/{arch}/busybox instead of busybox/{arch}/busybox,
matching the versioned path structure expected by infra's fetch-busybox.sh
and the runtime path resolution in the orchestrator.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ng release - Update google-github-actions/auth and upload-cloud-storage from @v1 to @V3 (v1 uses deprecated Node 16, unsupported on ubuntu-24.04 runners) - Add continue-on-error to GCS steps so GitHub release creation still proceeds if GCS auth or upload fails Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
bugbot run |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 47063d4. Configure here.
Generate a busybox.sha256 checksum file for each arch and upload it alongside the binary. This allows downstream consumers (fetch-busybox.sh) to verify integrity after download. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Mirrors the fc-kernels setup: creates a Workload Identity Federation pool, service account with objectUser access to the public builds bucket, and automatically configures the GitHub repo secrets/variables needed by the CI workflow. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit fe8115f. Configure here.
Leftover from fc-kernels template copy. No random_* resources exist. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>


Summary
publishjob to the build workflow that uploads busybox binaries to the GCS public builds bucket (e2b-prod-public-builds/busybox/{arch}/busybox)Why
The infra repo is moving busybox from a compile-time
//go:embedto a runtime disk read (see e2b-dev/infra#2326). This requires busybox to be in the GCS public bucket so orchestrator hosts can mount it via gcsfuse/s3fs.Prerequisites
GCP_WORKLOAD_IDENTITY_PROVIDERandGCP_SERVICE_ACCOUNT_EMAILsecrets must be configured (same as fc-kernels)GCP_BUCKET_NAMEvariable must be set toe2b-prod-public-builds(same as fc-kernels)Test plan
gs://e2b-prod-public-builds/busybox/amd64/busyboxandgs://e2b-prod-public-builds/busybox/arm64/busybox🤖 Generated with Claude Code