ci: store release build artifacts in GCS via OIDC#191
Open
devin-ai-integration[bot] wants to merge 1 commit into
Open
ci: store release build artifacts in GCS via OIDC#191devin-ai-integration[bot] wants to merge 1 commit into
devin-ai-integration[bot] wants to merge 1 commit into
Conversation
Co-Authored-By: Jonathan Haas <jonathan@0xHaas.com>
Author
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
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
Moves the
Releaseworkflow's cross-job build artifacts off GitHub Actions artifact storage and into the repository-isolated EvalOps GCS bucket, authenticated via GitHub OIDC / Workload Identity Federation (no static keys). This is the bulk of this repo's Actions storage, since it's almost entirely per-arch release tarballs handed between jobs.Adds a
./.github/actions/gcs-artifactscomposite action (upload/download viagoogle-github-actions/auth+gcloud storage) defaulting to this repo's dedicated identity:Workflow rewiring in
.github/workflows/release.yml:Notes:
github.run_idonly (notrun_attempt), so "Re-run failed jobs" onpublish-releasestill resolves the binaries the build matrix produced. Matrix legs stay collision-safe because each uploads a distinct target-specific tarball name (browser-use-rs-<tag>-<target>.tar.gz); download flattens by basename, preserving the oldmerge-multiplelayout indist/.id-token: writeis job-scoped (only on the two jobs that touch GCS);prepare-releasekeeps the workflow-levelcontents: writeit needs to push the tag.softprops/action-gh-release) and Homebrew tap publish are unchanged — only the redundant Actions-artifact copies moved.Dependency / ordering
This repo is not yet authorized for the shared WIF setup. It requires evalops/deploy#8125 to merge and a
terraform apply(creates thebrowser-use-rs-ci-evidenceSA, bucket, and repo-scoped WIF binding), plus theGCP_WORKLOAD_IDENTITY_PROVIDERrepo var/secret, before these GCS steps can authenticate. Until then a real release run's GCS steps will fail auth.Test Plan
actionlint .github/workflows/release.yml— passed.bash -non the extracted composite-action transfer script — passed.on.push.pathsforrelease.ymlexcludes.github/workflows/**andrelease-version.pyalready listsrelease.ymlas release-automation (non-release-worthy), so this change does not itself cut a release.Link to Devin session: https://app.devin.ai/sessions/63e9fd3ecd3a42e2bd9a3e665fa1a6b1
Requested by: @haasonsaas