Merge pull request 'override an existing release by the same tag' (#7) from earl-warren/forgejo-release:wip-override into main

Reviewed-on: https://code.forgejo.org/actions/forgejo-release/pulls/7
Reviewed-by: dachary <dachary@noreply.code.forgejo.org>
This commit is contained in:
earl-warren 2024-02-12 14:06:05 +00:00
commit 93cfaf8d53
4 changed files with 27 additions and 0 deletions

View file

@ -22,6 +22,7 @@ Upload or download the assets of a release to a Forgejo instance.
| gpg-passphrase | Passphrase of the GPG Private Key | `false` | | | gpg-passphrase | Passphrase of the GPG Private Key | `false` | |
| download-retry | Number of times to retry if the release is not ready (default 1) | `false` | | | download-retry | Number of times to retry if the release is not ready (default 1) | `false` | |
| verbose | Increase the verbosity level | `false` | false | | verbose | Increase the verbosity level | `false` | false |
| override | Override an existing release by the same {tag} | `false` | false |
| prerelease | Mark Release as Pre-Release | `false` | false | | prerelease | Mark Release as Pre-Release | `false` | false |
<!-- action-docs-inputs --> <!-- action-docs-inputs -->

View file

@ -32,6 +32,9 @@ inputs:
verbose: verbose:
description: 'Increase the verbosity level' description: 'Increase the verbosity level'
default: 'false' default: 'false'
override:
description: 'Override an existing release by the same {tag}'
default: 'false'
prerelease: prerelease:
description: 'Mark Release as Pre-Release' description: 'Mark Release as Pre-Release'
default: 'false' default: 'false'
@ -76,6 +79,8 @@ runs:
export SHA="${{ github.sha }}" export SHA="${{ github.sha }}"
fi fi
export OVERRIDE="${{ inputs.override }}"
export VERBOSE="${{ inputs.verbose }}" export VERBOSE="${{ inputs.verbose }}"
export RETRY="${{ inputs.download-retry }}" export RETRY="${{ inputs.download-retry }}"

View file

@ -12,6 +12,7 @@ if ${VERBOSE:-false}; then set -x; fi
: ${GNUPGHOME:=$TMP_DIR} : ${GNUPGHOME:=$TMP_DIR}
: ${BIN_DIR:=$TMP_DIR} : ${BIN_DIR:=$TMP_DIR}
: ${TEA_VERSION:=0.9.0} : ${TEA_VERSION:=0.9.0}
: ${OVERRIDE:=false}
: ${RETRY:=1} : ${RETRY:=1}
: ${DELAY:=10} : ${DELAY:=10}
@ -84,12 +85,21 @@ maybe_sign_release() {
fi fi
} }
maybe_override() {
if test "$OVERRIDE" = "false"; then
return
fi
api DELETE repos/$REPO/releases/tags/$TAG >& /dev/null || true
api DELETE repos/$REPO/tags/$TAG >& /dev/null || true
}
upload() { upload() {
setup_api setup_api
setup_tea setup_tea
rm -f ~/.config/tea/config.yml rm -f ~/.config/tea/config.yml
GITEA_SERVER_TOKEN=$TOKEN $BIN_DIR/tea login add --url $FORGEJO GITEA_SERVER_TOKEN=$TOKEN $BIN_DIR/tea login add --url $FORGEJO
maybe_sign_release maybe_sign_release
maybe_override
upload_release upload_release
} }

View file

@ -17,6 +17,17 @@ jobs:
release-dir: upload-dir release-dir: upload-dir
release-notes: "RELEASE NOTES" release-notes: "RELEASE NOTES"
verbose: true verbose: true
- if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
id: release-upload
uses: SELF@vTest
with:
direction: upload
tag: v1.0
token: FORGEJO_TOKEN
release-dir: upload-dir
release-notes: "RELEASE NOTES"
override: "true"
verbose: true
- if: ${{ !startsWith(github.ref, 'refs/tags/v') }} - if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
id: release-download id: release-download
uses: SELF@vTest uses: SELF@vTest