fix(version)!: resolve CLI version from reusable workflow ref#5357
fix(version)!: resolve CLI version from reusable workflow ref#5357rh-hemartin wants to merge 1 commit into
Conversation
PR Summary by QodoCI: resolve workflow SHA to release tag for Fullsend CLI installs
AI Description
Diagram
High-Level Assessment
Files changed (9)
|
|
🤖 Review · |
586fd4f to
a738f3a
Compare
|
🤖 Review · |
Code Review by Qodo
1.
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
a738f3a to
eedfa3e
Compare
|
🤖 Finished Review · ✅ Success · Started 2:04 PM UTC · Completed 2:19 PM UTC |
Site previewPreview: https://ca78803d-site.fullsend-ai.workers.dev Commit: |
waynesun09
left a comment
There was a problem hiding this comment.
Multi-agent review (3 agents: Claude ×2, Grok). 2 unique findings posted inline; 2 additional MEDIUM findings (Linux-only asset name, tags pagination) already covered by existing qodo comments — not re-posted.
ReviewFindingsMedium
Low
Previous runReviewFindingsMedium
Low
Previous runReviewFindingsMedium
Low
Previous run (2)ReviewFindingsMedium
Low
Labels: PR modifies CI workflows, dispatch version resolution, and CLI install logic to fix a version skew bug. |
eedfa3e to
a8886ed
Compare
|
🤖 Finished Review · ✅ Success · Started 11:59 AM UTC · Completed 12:16 PM UTC |
waynesun09
left a comment
There was a problem hiding this comment.
Multi-agent review (3 agents: Claude ×2, Grok). The 5 previously-flagged issues from the earlier review round are confirmed fixed in this diff and not re-flagged. 3 unique findings posted inline; the following medium+ findings don't anchor to a diff hunk in this repo, so noted here:
[HIGH] — Root action.yml's "Download release binary" step (~line 187-239) has no fallback if the resolved release lacks the runner's OS/arch asset. install-fullsend-cli/action.yml's equivalent step got continue-on-error: true + a source-build fallback in the prior review round; this step wasn't touched by this PR but is now reached far more often since the default version resolves to an arbitrary historical job.workflow_sha instead of always-well-covered "latest". Suggest mirroring the same continue-on-error + outcome-gated fallback here.
[MEDIUM] — The primary production caller, fullsend-ai/.fullsend, hardcodes fullsend_version: main in all 6 stage workflows (code/triage/review/fix/retro/prioritize), so inputs.fullsend_version || job.workflow_sha always evaluates to "main" there — this PR's stated fix for #3369 has no effect on the org's actual production install path unless .fullsend is separately updated to drop that override. Worth a follow-up PR/issue against fullsend-ai/.fullsend.
[MEDIUM] (premature-decision) — SHA→tag resolution and OS/arch mapping logic are duplicated verbatim across action.yml and install-fullsend-cli/action.yml with no shared source. This is the second time in this PR's own review history the same bug had to be patched in both places (the jq-injection fix was one bug fixed twice in the prior round). Suggest extracting a shared script both action files can source.
[MEDIUM] (premature-decision) — Only 1 of 4 items in the PR's own test plan is checked off. The core new behavior (a real SHA resolving to its tag and downloading the prebuilt binary) hasn't been demonstrated end-to-end — only the "no match, fall back to source" path has been exercised. Suggest completing the checklist before merge.
|
Opened #5511 to address the duplication and the creation of a shared lib. |
a8886ed to
ad0c08b
Compare
|
🤖 Review · |
Default fullsend_version to "" across all reusable workflows so callers that omit it resolve to job.workflow_sha instead of "latest". In the install action, resolve the SHA to a release tag via the GitHub API and download the GoReleaser artifact, falling back to source build for untagged commits or download failures. Harden the install action: paginate tag lookups, use safe jq parameterization, derive OS/arch from runner context instead of hardcoding linux, and add a source-build fallback when the release download fails. Closes #3369 BREAKING CHANGE: fullsend_version in reusable workflows now defaults to the workflow SHA instead of "latest". Callers that omit fullsend_version and want the previous behavior should pass fullsend_version: "latest" explicitly. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Hector Martinez <hemartin@redhat.com>
ad0c08b to
0e86cb3
Compare
|
🤖 Finished Review · ✅ Success · Started 8:58 AM UTC · Completed 9:15 AM UTC |
Summary
fullsend_versionto""across reusable workflows so callers that omit it fall through tojob.workflow_shainstead oflatest, preventing version skew between the workflow ref and the CLI binary (fullsend_version defaulting to 'latest' in reusable workflows creates version skew with action tags #3369).github/actions/install-fullsend-cli/action.yml) and the rootaction.yml, so a 40-char commit SHA is mapped to its release tag before download, avoiding unnecessary source builds--arg), derive OS/arch from runner context instead of hardcoding linux, and add a source-build fallback when the release download failsBreaking change
fullsend_versionin reusable workflows now defaults to the workflow SHA instead of"latest". Callers that omitfullsend_versionand want the previous behavior should passfullsend_version: "latest"explicitly.Closes #3369
Test plan
v0.31.0and downloads the pre-built binaryversion: latestandversion: v0.31.0paths are unaffected🤖 Generated with Claude Code