Uh oh!
There was an error while loading. Please reload this page.
chore(ENG-13952): add dev-release workflow for standalone binaries - #357
chore(ENG-13952): add dev-release workflow for standalone binaries#357cloudsmith-iduffy wants to merge 3 commits into
Conversation
Add a manually dispatched workflow. It builds the standalone binaries for a branch with the reusable binaries workflow. It publishes them to the Cloudsmith repository in the CLOUDSMITH_DEV_REPO variable for manual tests. The job summary lists the download URL and SHA256 for each target. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Revert this commit after the test run passes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Adds a manually-dispatched GitHub Actions workflow to publish “dev” builds of the standalone CLI binaries to a dedicated Cloudsmith repository, reusing the existing binaries.yml build workflow and OIDC auth approach.
Changes:
- Introduces a
Dev Releaseworkflow_dispatchworkflow that builds standalone binaries via the reusablebinaries.yml. - Publishes artifacts to the Cloudsmith dev repo using a derived
-dev.<run_number>.g<short_sha>Cloudsmith package version anddev-build/branch-<name>tags. - Writes a job summary containing per-target download URLs and SHA256 values.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| BRANCH_TAG=$(printf '%s' "${BRANCH}" | sed 's/[^A-Za-z0-9._-]/-/g' | cut -c1-64) | ||
| SUMMARY_ROWS="" | ||
| for TARGET in ${BINARY_TARGETS}; do |
There was a problem hiding this comment.
Fixed in 72a88cf. The publish loop now reads the targets and archive extensions from .github/scripts/binaries-matrix.json.
| ARCHIVE="binaries/cloudsmith-${BASE_VERSION}-${TARGET}${EXT}" | ||
| test -f "${ARCHIVE}" | ||
| test -f "${ARCHIVE}.sha256" | ||
There was a problem hiding this comment.
Fixed in 72a88cf. The workflow now runs sha256sum -c on each archive before the upload.
| BASE=$(cat cloudsmith_cli/data/VERSION) | ||
| echo "base=${BASE}" >> "$GITHUB_OUTPUT" | ||
| echo "dev=${BASE}-dev.${GITHUB_RUN_NUMBER}.g${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT" |
There was a problem hiding this comment.
The dev version applies to the Cloudsmith package only; the binary reports the base version. A build-time override would change the reusable binaries.yml workflow and break its version smoketests, so it is out of scope here. The PR description now states this.
Read the target list from binaries-matrix.json so the publish loop cannot drift from the build matrix. Verify each SHA256 checksum before the upload. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
What
Add a manually dispatched
Dev Releaseworkflow (ENG-13952). It builds the standalone binaries for the selected branch with the reusablebinaries.ymlworkflow. It publishes them to the Cloudsmith repository set in theCLOUDSMITH_DEV_REPOrepository variable.How it works
cloudsmith-cli-<target>. Each build gets the version<base>-dev.<run_number>.g<short_sha>and the tagsdev-buildandbranch-<name>.cloudsmith_cli/data/VERSION. A build-time version override would change the reusablebinaries.ymlworkflow and break its version smoketests, so it is out of scope here..github/scripts/binaries-matrix.json, the same source as the build matrix.Setup before the first run
CLOUDSMITH_DEV_REPOrepository variable (done).ref: refs/heads/<branch>claims from this workflow.Example run of this workflow can be seen at https://github.com/cloudsmith-io/cloudsmith-cli/actions/runs/31969009330?pr=357