mirror of
https://code.forgejo.org/actions/forgejo-release
synced 2026-02-18 04:27:01 +00:00
feat: use curl to create release and upload assets
This commit is contained in:
parent
6c747b97f9
commit
d78b6aea24
1 changed files with 30 additions and 14 deletions
|
|
@ -91,22 +91,32 @@ upload_release() {
|
|||
done
|
||||
fi
|
||||
if $PRERELEASE || echo "${TAG}" | grep -qi '\-rc'; then
|
||||
releaseType="--prerelease"
|
||||
prerelease="true"
|
||||
echo "Uploading as Pre-Release"
|
||||
else
|
||||
prerelease="false"
|
||||
echo "Uploading as Stable"
|
||||
fi
|
||||
ensure_tag
|
||||
if ! $TEA_BIN release create "${assets[@]}" --repo $REPO --note "$RELEASENOTES" --tag "$TAG" --title "$TITLE" --draft ${releaseType} >&"$TMP_DIR"/tea.log; then
|
||||
if grep --quiet 'Unknown API Error: 500' "$TMP_DIR"/tea.log && grep --quiet services/release/release.go:194 "$TMP_DIR"/tea.log; then
|
||||
echo "workaround v1.20 race condition https://codeberg.org/forgejo/forgejo/issues/1370"
|
||||
sleep 10
|
||||
$TEA_BIN release create "${assets[@]}" --repo $REPO --note "$RELEASENOTES" --tag "$TAG" --title "$TITLE" --draft ${releaseType}
|
||||
else
|
||||
cat "$TMP_DIR"/tea.log
|
||||
return 1
|
||||
fi
|
||||
jq --arg title "$TITLE" --arg body "$RELEASENOTES" --arg tag "$TAG" --arg pre $prerelease '{"draft": true, "name": $title, "body": $body, "prerelease": $pre }' >"$TMP_DIR"/release-payload.json
|
||||
api POST repos/$REPO/releases -d @"$TMP_DIR"/release-payload.json >"$TMP_DIR"/release.json
|
||||
if [ "$SKIP_ASSETS" == 'false' ]; then
|
||||
local id=$(jq --raw-output .id <"$TMP_DIR"/release.json)
|
||||
for file in "$RELEASE_DIR"/*; do
|
||||
local name=$(basename $file)
|
||||
api_bin repos/$REPO/releases/$id/assets/$name -D @$file
|
||||
done
|
||||
fi
|
||||
# if ! $TEA_BIN release create "${assets[@]}" --repo $REPO --note "$RELEASENOTES" --tag "$TAG" --title "$TITLE" --draft ${releaseType} >&"$TMP_DIR"/tea.log; then
|
||||
# if grep --quiet 'Unknown API Error: 500' "$TMP_DIR"/tea.log && grep --quiet services/release/release.go:194 "$TMP_DIR"/tea.log; then
|
||||
# echo "workaround v1.20 race condition https://codeberg.org/forgejo/forgejo/issues/1370"
|
||||
# sleep 10
|
||||
# $TEA_BIN release create "${assets[@]}" --repo $REPO --note "$RELEASENOTES" --tag "$TAG" --title "$TITLE" --draft ${releaseType}
|
||||
# else
|
||||
# cat "$TMP_DIR"/tea.log
|
||||
# return 1
|
||||
# fi
|
||||
# fi
|
||||
maybe_use_release_note_assistant
|
||||
release_draft false
|
||||
}
|
||||
|
|
@ -160,9 +170,6 @@ maybe_override() {
|
|||
|
||||
upload() {
|
||||
setup_api
|
||||
setup_tea
|
||||
rm -f ~/.config/tea/config.yml
|
||||
GITEA_SERVER_TOKEN=$TOKEN $TEA_BIN login add --url $FORGEJO
|
||||
maybe_sign_release
|
||||
maybe_override
|
||||
upload_release
|
||||
|
|
@ -181,7 +188,16 @@ api() {
|
|||
path=$1
|
||||
shift
|
||||
|
||||
curl --fail -X "$method" -sS -H "Content-Type: application/json" -H "Authorization: token $TOKEN" "$@" $FORGEJO/api/v1/"$path"
|
||||
curl --retry 5 --fail -X "$method" -sS -H "Content-Type: application/json" -H "Authorization: token $TOKEN" "$@" $FORGEJO/api/v1/"$path"
|
||||
}
|
||||
|
||||
api_bin() {
|
||||
method=$1
|
||||
shift
|
||||
path=$1
|
||||
shift
|
||||
|
||||
curl --retry 5 --fail -X "$method" -sS -H "Authorization: token $TOKEN" "$@" $FORGEJO/api/v1/"$path"
|
||||
}
|
||||
|
||||
wait_release() {
|
||||
|
|
|
|||
Loading…
Reference in a new issue