feat: allow for draft releases

Closes #56.

Adds a `draft` input that, if true, skips the step of setting the draft
status to false.

Signed-off-by: crueter <crueter@eden-emu.dev>
This commit is contained in:
crueter 2025-11-11 21:19:20 -05:00
parent e5e095057a
commit 0bca42135c
No known key found for this signature in database
GPG key ID: 425ACD2D4830EBC6
3 changed files with 29 additions and 1 deletions

View file

@ -26,6 +26,7 @@ Upload or download the assets of a release to a Forgejo instance.
| `verbose` | <p>Increase the verbosity level</p> | `false` | `false` | | `verbose` | <p>Increase the verbosity level</p> | `false` | `false` |
| `override` | <p>Override an existing release by the same <code>{tag}</code></p> | `false` | `false` | | `override` | <p>Override an existing release by the same <code>{tag}</code></p> | `false` | `false` |
| `prerelease` | <p>Mark Release as Pre-Release</p> | `false` | `false` | | `prerelease` | <p>Mark Release as Pre-Release</p> | `false` | `false` |
| `draft` | <p>Mark this release as a draft</p> | `false` | `false` |
| `release-notes-assistant` | <p>Generate release notes with Release Notes Assistant</p> | `false` | `false` | | `release-notes-assistant` | <p>Generate release notes with Release Notes Assistant</p> | `false` | `false` |
| `hide-archive-link` | <p>Hide the archive links</p> | `false` | `false` | | `hide-archive-link` | <p>Hide the archive links</p> | `false` | `false` |
<!-- action-docs-inputs source="action.yml" --> <!-- action-docs-inputs source="action.yml" -->
@ -53,6 +54,27 @@ jobs:
release-notes: "MY RELEASE NOTES" release-notes: "MY RELEASE NOTES"
``` ```
Upload a draft prerelease, with assets located in `artifacts`:
```yaml
jobs:
upload-release:
runs-on: docker
steps:
- uses: actions/checkout@v4
- uses: actions/forgejo-release@v2.7.3
with:
direction: upload
url: https://my-forgejo-instance.net
repo: myuser/myrepo
token: ${{ secrets.WRITE_TOKEN_TO_MYREPO }}
tag: v2.1.0-rc1
release-dir: artifacts
release-notes: "CHANGEME"
draft: true
prerelease: true
```
### Download ### Download
Example downloading the forgejo release v1.21.4-0 into the working directory: Example downloading the forgejo release v1.21.4-0 into the working directory:

View file

@ -47,6 +47,9 @@ inputs:
prerelease: prerelease:
description: 'Mark Release as Pre-Release' description: 'Mark Release as Pre-Release'
default: false default: false
draft:
description: 'Mark this release as a draft'
default: false
release-notes-assistant: release-notes-assistant:
description: 'Generate release notes with Release Notes Assistant' description: 'Generate release notes with Release Notes Assistant'
default: false default: false
@ -105,6 +108,8 @@ runs:
export RETRY="${{ inputs.download-retry }}" export RETRY="${{ inputs.download-retry }}"
export DRAFT="${{ inputs.draft }}"
export TMP_DIR=$(mktemp -d) export TMP_DIR=$(mktemp -d)
trap "rm -fr $TMP_DIR" EXIT trap "rm -fr $TMP_DIR" EXIT

View file

@ -18,6 +18,7 @@ if ${VERBOSE:-false}; then set -x; fi
: ${HIDE_ARCHIVE_LINK:=false} : ${HIDE_ARCHIVE_LINK:=false}
: ${RETRY:=1} : ${RETRY:=1}
: ${DELAY:=10} : ${DELAY:=10}
: ${DRAFT:=false}
RELEASE_NOTES_ASSISTANT_VERSION=v1.4.1 # renovate: datasource=forgejo-releases depName=forgejo/release-notes-assistant registryUrl=https://code.forgejo.org RELEASE_NOTES_ASSISTANT_VERSION=v1.4.1 # renovate: datasource=forgejo-releases depName=forgejo/release-notes-assistant registryUrl=https://code.forgejo.org
@ -105,7 +106,7 @@ upload_release() {
fi fi
fi fi
maybe_use_release_note_assistant maybe_use_release_note_assistant
release_draft false [ "$DRAFT" = "false" ] && release_draft false
} }
release_draft() { release_draft() {