File tree Expand file tree Collapse file tree 3 files changed +75
-10
lines changed
Expand file tree Collapse file tree 3 files changed +75
-10
lines changed Original file line number Diff line number Diff line change @@ -956,6 +956,7 @@ jobs:
956956 runs-on : ubuntu-latest
957957 steps :
958958 - name : Set the tag name
959+ if : env.RELEASE == 'true'
959960 run : |
960961 tag=${{ needs.config.outputs.tag }}
961962 release_id=${{ fromJson(needs.create-draft-release.outputs.release).id }}
@@ -965,20 +966,22 @@ jobs:
965966 --method PATCH \
966967 -H 'Accept: application/vnd.github+json' \
967968 -H 'X-GitHub-Api-Version: 2022-11-28' \
968- -f tag_name=$tag
969+ -f tag_name=$tag \
970+ -f "target_commitish=$GITHUB_SHA"
969971
970- current_tag_name =$(
972+ release =$(
971973 gh api \
972974 "/repos/$GITHUB_REPOSITORY/releases/$release_id" \
973975 -H 'Accept: application/vnd.github+json' \
974976 -H 'X-GitHub-Api-Version: 2022-11-28' \
975- -q . tag_name
977+ -q '{ tag_name, target_commitish }'
976978 )
977- if [ "$current_tag_name" = $tag ]; then
979+ if [ "$(jq -r .tag_name <<< "$release")" = $tag ] &&
980+ [ "$(jq -r .target_commitish <<< "$release")" = "$GITHUB_SHA" ]; then
978981 exit
979- else
980- echo 'tag_name was not set. retrying' >&2
981982 fi
983+ echo 'tag_name was not set. retrying' >&2
984+ sleep 1
982985 done
983986
984987 echo "::error title=set-tag-name::Could not set 'tag_name'. Please set it manually"
Original file line number Diff line number Diff line change @@ -11,29 +11,29 @@ defaults:
1111
1212jobs :
1313 get-release :
14- name : Check if the release is draft
14+ name : Get the release
1515 runs-on : ubuntu-latest
1616 outputs :
1717 num-assets : ${{ fromJson(steps.get-release.outputs.release).numAssets }}
1818 body-is-empty : ${{ fromJson(steps.get-release.outputs.release).bodyIsEmpty }}
1919 is-draft : ${{ fromJson(steps.get-release.outputs.release).isDraft }}
2020 target-commitish : ${{ fromJson(steps.get-release.outputs.release).targetCommitish }}
2121 steps :
22- - name : Check if the tag name is unique in recent releases
22+ - name : Check if no other releases with the same tag name exist in recent releases
2323 run : |
2424 multiple=$(
2525 gh release -R "$GITHUB_REPOSITORY" list \
2626 --json tagName \
2727 -q 'map(select(.tagName == "'"$GITHUB_REF_NAME"'")) | length > 1'
2828 )
2929 if [ "$multiple" = true ]; then
30- echo "::error title=get-release::Multiple '$GITHUB_REF_NAME'"
30+ echo "::error title=get-release::Multiple '$GITHUB_REF_NAME' in recent releases "
3131 exit 1
3232 fi
3333 env :
3434 GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
3535
36- - name : Check if the release is draft
36+ - name : Get the release
3737 id : get-release
3838 run : |
3939 release=$(
Original file line number Diff line number Diff line change 1+ #! /bin/bash
2+
3+ set -e
4+
5+ fail_with_usage () {
6+ echo " Usage: $0 [-R <repository>] <type> <version>" >&2
7+ exit 1
8+ }
9+
10+ repository=VOICEVOX/onnxruntime-builder
11+
12+ while getopts R: opt; do
13+ case " $opt " in
14+ R)
15+ repository=$OPTARG
16+ shift 2 ;;
17+ * )
18+ fail_with_usage
19+ esac
20+ done
21+
22+ if [ $# -ne 2 ]; then
23+ fail_with_usage
24+ fi
25+
26+ type=$1
27+ version=$2
28+
29+ remotes=$( git remote -v)
30+ remote=$( grep -e ' \shttps://github\.com/' " $repository " ' \(\.git\)\? (push)$' <<< " $remotes" )
31+ remote_name=$( awk ' { print $1 }' <<< " $remote" )
32+
33+ tag=$type -$version
34+ msg=$tag
35+
36+ local_rev=$( git rev-parse HEAD)
37+ remote_rev=$( gh release -R " $repository " view " $tag " --json targetCommitish -q .targetCommitish)
38+
39+ if [ " $local_rev " != " $remote_rev " ]; then
40+ echo " local: '$local_rev ', remote: '$remote_rev '" >&2
41+ exit 1
42+ fi
43+ echo ' Commit SHA: OK' >&2
44+
45+ echo >&2
46+ table=$' Repository\t ' " $repository ($remote_name )" $' \n '
47+ table+=$' Tag name\t ' " $tag " $' \n '
48+ table+=$' Tag message\t ' " $msg " $' \n '
49+ table+=$' Revision\t ' " $local_rev "
50+ column <( cat <<< " $table" ) -tms $' \t ' -o ' | ' | sed ' s/.*/| \0|/' >&2
51+ echo >&2
52+
53+ read -rp ' Proceed? (y/N): ' input
54+ if ! [[ " $input " =~ ^[yY]$ ]]; then
55+ echo ' Aborted' >&2
56+ exit
57+ fi
58+
59+ git tag " $tag " -sm " $msg "
60+ echo " Created '$tag '" >&2
61+
62+ git push " $remote_name " " $tag "
You can’t perform that action at this time.
0 commit comments