mirror of
https://code.forgejo.org/actions/forgejo-release.git
synced 2025-11-28 02:01:58 +02:00
better locals names, POSIX compliant action.yml
Signed-off-by: crueter <crueter@eden-emu.dev>
This commit is contained in:
parent
eeadd646e2
commit
8fd044737f
2 changed files with 17 additions and 22 deletions
18
action.yml
18
action.yml
|
|
@ -64,14 +64,14 @@ runs:
|
||||||
path: ${{ forge.action_path }}/rna
|
path: ${{ forge.action_path }}/rna
|
||||||
|
|
||||||
- run: echo "${{ forge.action_path }}" >> $FORGEJO_PATH
|
- run: echo "${{ forge.action_path }}" >> $FORGEJO_PATH
|
||||||
shell: bash
|
shell: sh
|
||||||
- run: |
|
- run: |
|
||||||
export FORGEJO="${{ inputs.url }}"
|
export FORGEJO="${{ inputs.url }}"
|
||||||
# A trailing / will mean http://forgejo//api/v1 is used
|
# A trailing / will mean http://forgejo//api/v1 is used
|
||||||
# and it always 401 as of v1.19, because of the double slash
|
# and it always 401 as of v1.19, because of the double slash
|
||||||
FORGEJO=${FORGEJO%%/}
|
FORGEJO=${FORGEJO%%/}
|
||||||
export SCHEME=${FORGEJO%://*}
|
export SCHEME="${FORGEJO%://*}"
|
||||||
export HOST=${FORGEJO#*://}
|
export HOST="${FORGEJO#*://}"
|
||||||
|
|
||||||
export REPO="${{ inputs.repo }}"
|
export REPO="${{ inputs.repo }}"
|
||||||
|
|
||||||
|
|
@ -84,7 +84,7 @@ runs:
|
||||||
export PRERELEASE="${{ inputs.prerelease }}"
|
export PRERELEASE="${{ inputs.prerelease }}"
|
||||||
|
|
||||||
export RELEASE_NOTES_ASSISTANT="${{ inputs.release-notes-assistant }}"
|
export RELEASE_NOTES_ASSISTANT="${{ inputs.release-notes-assistant }}"
|
||||||
export RELEASE_NOTES_ASSISTANT_WORKDIR=${{ forge.action_path }}/rna
|
export RELEASE_NOTES_ASSISTANT_WORKDIR="${{ forge.action_path }}/rna"
|
||||||
|
|
||||||
export HIDE_ARCHIVE_LINK="${{ inputs.hide-archive-link }}"
|
export HIDE_ARCHIVE_LINK="${{ inputs.hide-archive-link }}"
|
||||||
|
|
||||||
|
|
@ -105,13 +105,13 @@ runs:
|
||||||
|
|
||||||
export RETRY="${{ inputs.download-retry }}"
|
export RETRY="${{ inputs.download-retry }}"
|
||||||
|
|
||||||
export TMP_DIR=$(mktemp -d)
|
export TMP_DIR="$(mktemp -d)"
|
||||||
trap "rm -fr $TMP_DIR" EXIT
|
trap 'rm -fr $TMP_DIR' EXIT
|
||||||
|
|
||||||
echo -n "${{ inputs.gpg-private-key }}" > $TMP_DIR/gpg-private-key
|
printf "${{ inputs.gpg-private-key }}" > $TMP_DIR/gpg-private-key
|
||||||
export GPG_PRIVATE_KEY=$TMP_DIR/gpg-private-key
|
export GPG_PRIVATE_KEY=$TMP_DIR/gpg-private-key
|
||||||
echo -n "${{ inputs.gpg-passphrase }}" > $TMP_DIR/gpg-passphrase
|
printf "${{ inputs.gpg-passphrase }}" > $TMP_DIR/gpg-passphrase
|
||||||
export GPG_PASSPHRASE="$TMP_DIR/gpg-passphrase"
|
export GPG_PASSPHRASE="$TMP_DIR/gpg-passphrase"
|
||||||
|
|
||||||
forgejo-release.sh ${{ inputs.direction }}
|
forgejo-release.sh "${{ inputs.direction }}"
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
|
||||||
|
|
@ -50,12 +50,7 @@ get_tag() {
|
||||||
}
|
}
|
||||||
|
|
||||||
matched_tag() {
|
matched_tag() {
|
||||||
if get_tag; then
|
get_tag && [ "$(jq --raw-output .commit.sha <"$TAG_FILE")" = "$SHA" ]
|
||||||
sha=$(jq --raw-output .commit.sha <"$TAG_FILE")
|
|
||||||
[ "$sha" = "$SHA" ]
|
|
||||||
else
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ensure_tag() {
|
ensure_tag() {
|
||||||
|
|
@ -114,12 +109,11 @@ upload_release() {
|
||||||
release_draft false
|
release_draft false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# $1 is the state
|
||||||
release_draft() {
|
release_draft() {
|
||||||
state="$1"
|
_release_draft_id=$(api GET "repos/$REPO/releases/tags/$TAG_URL" | jq --raw-output .id)
|
||||||
|
|
||||||
id=$(api GET "repos/$REPO/releases/tags/$TAG_URL" | jq --raw-output .id)
|
api PATCH "repos/$REPO/releases/$_release_draft_id" --data-raw '{"draft": '"$1"', "hide_archive_links": '"$HIDE_ARCHIVE_LINK"'}'
|
||||||
|
|
||||||
api PATCH "repos/$REPO/releases/$id" --data-raw '{"draft": '"$state"', "hide_archive_links": '"$HIDE_ARCHIVE_LINK"'}'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
maybe_use_release_note_assistant() {
|
maybe_use_release_note_assistant() {
|
||||||
|
|
@ -134,15 +128,15 @@ maybe_use_release_note_assistant() {
|
||||||
|
|
||||||
sign_release() {
|
sign_release() {
|
||||||
if [ -s "$GPG_PASSPHRASE" ]; then
|
if [ -s "$GPG_PASSPHRASE" ]; then
|
||||||
passphrase="--passphrase-file $GPG_PASSPHRASE"
|
_sign_release_passphrase="--passphrase-file $GPG_PASSPHRASE"
|
||||||
fi
|
fi
|
||||||
gpg --import --no-tty --pinentry-mode loopback "$passphrase" "$GPG_PRIVATE_KEY"
|
gpg --import --no-tty --pinentry-mode loopback "$_sign_release_passphrase" "$GPG_PRIVATE_KEY"
|
||||||
for asset in "$RELEASE_DIR"/*; do
|
for asset in "$RELEASE_DIR"/*; do
|
||||||
case "$asset" in
|
case "$asset" in
|
||||||
*.sha256) continue ;;
|
*.sha256) continue ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
gpg --armor --detach-sign --no-tty --pinentry-mode loopback "$passphrase" <"$asset" >"$asset".asc
|
gpg --armor --detach-sign --no-tty --pinentry-mode loopback "$_sign_release_passphrase" <"$asset" >"$asset".asc
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -206,6 +200,7 @@ api() {
|
||||||
wait_release() {
|
wait_release() {
|
||||||
ready=false
|
ready=false
|
||||||
for _ in $(seq "$RETRY"); do
|
for _ in $(seq "$RETRY"); do
|
||||||
|
# TODO: this is probably unnecessary; a direct comparison on the jq call is *probably* enough.
|
||||||
if api GET "repos/$REPO/releases/tags/$TAG_URL" | jq --raw-output .draft >"$TMP_DIR"/draft; then
|
if api GET "repos/$REPO/releases/tags/$TAG_URL" | jq --raw-output .draft >"$TMP_DIR"/draft; then
|
||||||
if [ "$(cat "$TMP_DIR"/draft)" = "false" ]; then
|
if [ "$(cat "$TMP_DIR"/draft)" = "false" ]; then
|
||||||
ready=true
|
ready=true
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue