feat(release): wire build identifier into artifact naming (epic 005 T015) - #57
Conversation
…015)
Adds a "Compute build identifier (FR-005)" step calling T006's
build-identifier.sh, threading the result into the packaging and
checksum steps via step-level env so it's never spliced into a run:
script body. Artifact naming becomes
dist/iklo-<tag>-<target>-<build-id>. "Release metadata" (the other
half of FR-005) is deferred to T012, which will read the same step
output when it composes the atomic release-creation call.
Self-review (pr-review-toolkit:code-reviewer) caught one real issue,
fixed: `echo "value=$(cmd)" >> "$GITHUB_OUTPUT"` swallows a failing
cmd -- the compound command's exit status is echo's, not the
substitution's, so GitHub Actions' default `bash -e {0}` (no
pipefail) would never notice, and the step would pass green with an
empty value, producing a malformed, unidentified release artifact
instead of failing the job. Verified empirically (bash -e reproduction)
that a separate assignment does propagate the failure correctly.
Co-authored-by: Claude <noreply@anthropic.com>
Reviewer's GuideThis PR threads a computed build identifier into the GitHub Actions release workflow so that staged artifacts and their checksums are named with tag, target, and build id, and updates the CI release versioning spec to mark T015 as complete and describe the new behavior. File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe release workflow now computes a build identifier from the GitHub run number and attempt. Packaging and checksum filenames include the release tag, target triple, and build identifier. Task documentation records the completed implementation and verification. ChangesRelease versioning
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant ReleaseWorkflow
participant BuildIdentifierScript as build-identifier.sh
participant PackagingStep
participant ChecksumStep
ReleaseWorkflow->>BuildIdentifierScript: Generate build identifier
BuildIdentifierScript-->>ReleaseWorkflow: Return build identifier
ReleaseWorkflow->>PackagingStep: Pass release tag, target, and build identifier
PackagingStep-->>ReleaseWorkflow: Create named binary
ReleaseWorkflow->>ChecksumStep: Pass packaged artifact
ChecksumStep-->>ReleaseWorkflow: Create named checksum
Possibly related PRs
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Up to standards ✅🟢 Issues
|
Summary
release.yml(epic 005, Phase 5 US3, T015).build-identifier.sh, exposed as a step output and threaded into packaging/checksum steps via step-levelenv(never spliced into arun:script body).dist/iklo-<tag>-<target>-<build-id>.Test plan
Psych)GITHUB_RUN_NUMBER=42 GITHUB_RUN_ATTEMPT=1standing in for the real env vars), staged and checksummed the correctly-named artifact,shasum -a 256 -creportsOKmake build/make testgreenecho "value=$(cmd)" >> "$GITHUB_OUTPUT"silently swallows a failingcmdunder GitHub Actions' defaultbash -e {0}(nopipefail) — the step would pass green with an empty build-id value, producing a malformed release artifact instead of failing the job. Verified empirically that a separate assignment propagates the failure correctly.🧙 Built with WOZCODE
Summary by Sourcery
Integrate a computed build identifier into the release workflow and artifact naming for CLI releases.
New Features:
Enhancements:
Documentation:
Summary by cubic
Adds a build identifier to release artifact and checksum filenames in
release.ymlto bind artifacts to a specific workflow run. Old names: dist/iklo--; new names: dist/iklo---. Supports FR-005 (Linear T015); release creation stays the same and will be wired in T012..github/scripts/build-identifier.sh, exposessteps.build_id.outputs.value, and passes it asBUILD_IDto packaging and checksum steps; artifact paths updated accordingly.$GITHUB_OUTPUT.dist/to expect the build-id suffix and corresponding.sha256files.Written for commit 5bd80f8. Summary will update on new commits.
Summary by CodeRabbit
New Features
Bug Fixes
Documentation