File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 33set -euo pipefail
44
55# Script to resolve the release version and target ref from a
6- # workflow_dispatch input by looking up the existing draft release.
6+ # workflow_dispatch input by looking up the existing release.
7+ # Works for both draft and published releases so an existing release
8+ # can be rebuilt and clobbered with new assets.
79#
810# Usage: resolve-version-ref.sh
911# Environment variables:
@@ -20,18 +22,11 @@ function main {
2022
2123 # Look up the release to get target_commitish
2224 local release_json
23- if ! release_json=$( gh release view " $version " --json ' isDraft, targetCommitish' 2> /dev/null) ; then
25+ if ! release_json=$( gh release view " $version " --json ' targetCommitish' 2> /dev/null) ; then
2426 echo " ERROR: No release found for version $version " >&2
2527 exit 1
2628 fi
2729
28- local is_draft
29- is_draft=$( jq -r ' .isDraft' <<< " $release_json" )
30- if [[ " $is_draft " != " true" ]]; then
31- echo " ERROR: Release $version is already published. Cannot rebuild a published release." >&2
32- exit 1
33- fi
34-
3530 local ref
3631 ref=$( jq -r ' .targetCommitish' <<< " $release_json" )
3732
Original file line number Diff line number Diff line change @@ -27,7 +27,7 @@ teardown() {
2727
2828 run " $SCRIPT "
2929 [ " $status " -eq 0 ]
30- grep -q " ^version=v1.2.3 $" " $GITHUB_OUTPUT "
30+ grep -q " ^version=${INPUT_VERSION} $" " $GITHUB_OUTPUT "
3131 grep -q " ^ref=${sha} $" " $GITHUB_OUTPUT "
3232}
3333
@@ -40,12 +40,14 @@ teardown() {
4040 [[ " $output " == * " No release found" * ]]
4141}
4242
43- @test " errors if release is already published" {
44- export GH_STUB_RESPONSE=' {"isDraft":false,"targetCommitish":"a1b2c3d4e5f6789012345678901234567890abcd"}'
43+ @test " resolves published release to version + ref" {
44+ local sha=" a1b2c3d4e5f6789012345678901234567890abcd"
45+ export GH_STUB_RESPONSE=" {\" targetCommitish\" :\" ${sha} \" }"
4546
4647 run " $SCRIPT "
47- [ " $status " -ne 0 ]
48- [[ " $output " == * " already published" * ]]
48+ [ " $status " -eq 0 ]
49+ grep -q " ^version=${INPUT_VERSION} $" " $GITHUB_OUTPUT "
50+ grep -q " ^ref=${sha} $" " $GITHUB_OUTPUT "
4951}
5052
5153@test " fails when INPUT_VERSION missing" {
You can’t perform that action at this time.
0 commit comments