forgejo-release/action.yml

71 lines
2.1 KiB
YAML
Raw Normal View History

2023-03-29 11:16:26 -04:00
name: 'Forgejo release download and upload'
author: 'Forgejo authors'
description: |
2023-03-29 11:16:26 -04:00
Upload or download the assets of a release to a Forgejo instance.
inputs:
url:
description: 'URL of the Forgejo instance'
repo:
description: 'owner/project relative to the URL'
tag:
description: 'Tag of the release'
sha:
description: 'SHA of the release'
2023-03-29 11:16:26 -04:00
doer:
description: 'Forgejo user authoring the upload'
token:
description: 'Forgejo application token'
required: true
release-dir:
description: 'Directory in whichs release assets are uploaded or downloaded'
required: true
2023-03-29 17:59:02 -04:00
release-notes:
description: 'Release notes'
2023-03-29 11:16:26 -04:00
direction:
description: 'Can either be download or upload'
required: true
verbose:
description: 'Increase the verbosity level'
default: 'false'
runs:
using: "composite"
steps:
- run: echo "${{ github.action_path }}" >> $GITHUB_PATH
shell: bash
2023-03-29 11:16:26 -04:00
- run: |
export FORGEJO="${{ inputs.url }}"
2023-03-30 02:52:59 -04:00
if test -z "$FORGEJO"; then
export FORGEJO="${{ env.GITHUB_SERVER_URL }}"
2023-03-30 02:52:59 -04:00
fi
# A trailing / will mean http://forgejo//api/v1 is used
# and it always 401 as of v1.19, because of the double slash
FORGEJO=${FORGEJO%%/}
2023-03-29 11:16:26 -04:00
export REPO="${{ inputs.repo }}"
2023-03-30 02:52:59 -04:00
if test -z "$REPO"; then
export REPO="${{ github.repository }}"
fi
2023-03-29 11:16:26 -04:00
export TAG="${{ inputs.tag }}"
2023-03-30 08:18:23 -04:00
if test -z "$TAG"; then
export TAG="${{ github.ref_name }}"
fi
2023-03-29 11:16:26 -04:00
export DOER="${{ inputs.doer }}"
export TOKEN="${{ inputs.token }}"
2023-03-30 02:52:59 -04:00
if test -z "$TOKEN"; then
export TOKEN="${{ secrets.GITHUB_TOKEN }}"
2023-03-30 02:52:59 -04:00
fi
if test -z "$TOKEN"; then
export TOKEN="${{ github.token }}"
2023-03-30 02:52:59 -04:00
fi
test "$TOKEN"
2023-03-29 11:16:26 -04:00
export RELEASE_DIR="${{ inputs.release-dir }}"
2023-03-29 17:59:02 -04:00
export RELEASENOTES="${{ inputs.release-notes }}"
2023-03-29 11:16:26 -04:00
export VERBOSE="${{ inputs.verbose }}"
2023-03-30 02:52:59 -04:00
export SHA="${{ inputs.sha }}"
if test -z "$SHA"; then
export SHA="${{ github.sha }}"
fi
2023-03-29 11:16:26 -04:00
forgejo-release.sh ${{ inputs.direction }}
shell: bash