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
|
done
|
||||||
fi
|
fi
|
||||||
if $PRERELEASE || echo "${TAG}" | grep -qi '\-rc'; then
|
if $PRERELEASE || echo "${TAG}" | grep -qi '\-rc'; then
|
||||||
releaseType="--prerelease"
|
prerelease="true"
|
||||||
echo "Uploading as Pre-Release"
|
echo "Uploading as Pre-Release"
|
||||||
else
|
else
|
||||||
|
prerelease="false"
|
||||||
echo "Uploading as Stable"
|
echo "Uploading as Stable"
|
||||||
fi
|
fi
|
||||||
ensure_tag
|
ensure_tag
|
||||||
if ! $TEA_BIN release create "${assets[@]}" --repo $REPO --note "$RELEASENOTES" --tag "$TAG" --title "$TITLE" --draft ${releaseType} >&"$TMP_DIR"/tea.log; then
|
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
|
||||||
if grep --quiet 'Unknown API Error: 500' "$TMP_DIR"/tea.log && grep --quiet services/release/release.go:194 "$TMP_DIR"/tea.log; then
|
api POST repos/$REPO/releases -d @"$TMP_DIR"/release-payload.json >"$TMP_DIR"/release.json
|
||||||
echo "workaround v1.20 race condition https://codeberg.org/forgejo/forgejo/issues/1370"
|
if [ "$SKIP_ASSETS" == 'false' ]; then
|
||||||
sleep 10
|
local id=$(jq --raw-output .id <"$TMP_DIR"/release.json)
|
||||||
$TEA_BIN release create "${assets[@]}" --repo $REPO --note "$RELEASENOTES" --tag "$TAG" --title "$TITLE" --draft ${releaseType}
|
for file in "$RELEASE_DIR"/*; do
|
||||||
else
|
local name=$(basename $file)
|
||||||
cat "$TMP_DIR"/tea.log
|
api_bin repos/$REPO/releases/$id/assets/$name -D @$file
|
||||||
return 1
|
done
|
||||||
fi
|
|
||||||
fi
|
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
|
maybe_use_release_note_assistant
|
||||||
release_draft false
|
release_draft false
|
||||||
}
|
}
|
||||||
|
|
@ -160,9 +170,6 @@ maybe_override() {
|
||||||
|
|
||||||
upload() {
|
upload() {
|
||||||
setup_api
|
setup_api
|
||||||
setup_tea
|
|
||||||
rm -f ~/.config/tea/config.yml
|
|
||||||
GITEA_SERVER_TOKEN=$TOKEN $TEA_BIN login add --url $FORGEJO
|
|
||||||
maybe_sign_release
|
maybe_sign_release
|
||||||
maybe_override
|
maybe_override
|
||||||
upload_release
|
upload_release
|
||||||
|
|
@ -181,7 +188,16 @@ api() {
|
||||||
path=$1
|
path=$1
|
||||||
shift
|
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() {
|
wait_release() {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue