As a proposal solution to this issue: https://code.forgejo.org/actions/forgejo-release/issues/51 We use the system installed tea binary if available or download it as it was done before if not. The location of the binary is stored in a new variable `$TEA_BIN` which replaces the need for the `$ BIN_DIR` location. I tested it on Alpine and Debian. Co-authored-by: Rayan Mestiri <rayan.mestiri@gmail.com> Co-authored-by: Rayan MESTIRI <rayan.mestiri@NLGRSSL600K.ratpsmart.local> Reviewed-on: https://code.forgejo.org/actions/forgejo-release/pulls/53 Reviewed-by: earl-warren <earl-warren@noreply.code.forgejo.org> Co-authored-by: sheik <sheik@noreply.code.forgejo.org> Co-committed-by: sheik <sheik@noreply.code.forgejo.org>  | 
			||
|---|---|---|
| .forgejo/workflows | ||
| testdata | ||
| .editorconfig | ||
| .gitignore | ||
| action.yml | ||
| forgejo-release.sh | ||
| LICENSE | ||
| README.md | ||
| renovate.json | ||
forgejo-release
Description
Upload or download the assets of a release to a Forgejo instance.
Inputs
| name | description | required | default | 
|---|---|---|---|
url | 
URL of the Forgejo instance  | 
false | 
${{ env.GITHUB_SERVER_URL }} | 
repo | 
owner/project relative to the URL  | 
false | 
${{ github.repository }} | 
tag | 
Tag of the release  | 
false | 
${{ github.ref_name }} | 
title | 
Title of the release (defaults to tag)  | 
false | 
"" | 
sha | 
SHA of the release  | 
false | 
${{ github.sha }} | 
token | 
Forgejo application token  | 
false | 
${{ secrets.GITHUB_TOKEN }} | 
release-dir | 
Directory in whichs release assets are uploaded or downloaded  | 
true | 
"" | 
release-notes | 
Release notes  | 
false | 
"" | 
direction | 
Can either be   | 
true | 
"" | 
gpg-private-key | 
GPG Private Key to sign the release artifacts  | 
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-latest | 
Download the latest release  | 
false | 
false | 
verbose | 
Increase the verbosity level  | 
false | 
false | 
override | 
Override an existing release by the same   | 
false | 
false | 
prerelease | 
Mark Release as Pre-Release  | 
false | 
false | 
release-notes-assistant | 
Generate release notes with Release Notes Assistant  | 
false | 
false | 
hide-archive-link | 
Hide the archive links  | 
false | 
false | 
Examples
Upload
Upload the release located in release-dir to the release section of a repository (url and repo):
jobs:
  upload-release:
    runs-on: docker
    steps:
      - uses: actions/checkout@v4
      - uses: actions/forgejo-release@v2.6.0
        with:
          direction: upload
          url: https://my-forgejo-instance.net
          repo: myuser/myrepo
          token: ${{ secrets.WRITE_TOKEN_TO_MYREPO }}
          tag: v1.0.0
          release-dir: dist/release
          release-notes: "MY RELEASE NOTES"
Download
Example downloading the forgejo release v1.21.4-0 into the working directory:
jobs:
  download-release:
    runs-on: docker
    steps:
      - uses: actions/checkout@v4
      - uses: actions/forgejo-release@v2.6.0
        with:
          direction: download
          url: https://my-forgejo-instance.net
          repo: myuser/myrepo
          token: ${{ secrets.READ_TOKEN_TO_MYREPO }}
          tag: v1.0.0
          release-dir: ./  # by default, files are downloaded into dist/release
Real world example
This action is used to publish the release notes assistant assets.
Update the input section of the README
Using action-docs:
# Edit the action.yml file and run:
action-docs --update-readme