forked from NYANDEV/forgejo
574e6e205b
- Document workflow - Increase verbosity if VERBOSE=true - Download the Certificate Authority if behind the VPN (cherry picked from commit 168d5d586904835762d213b2b8815b458a38c78f) (cherry picked from commit d6784841599f2f52b7f551b9d91293dfa008a4b0) (cherry picked from commit 1c7698055adfd08b7690ea98b31fd97a384255d9)
99 lines
3.6 KiB
YAML
99 lines
3.6 KiB
YAML
name: 'Publish release'
|
|
author: 'Forgejo authors'
|
|
description: |
|
|
Publish release
|
|
|
|
inputs:
|
|
forgejo:
|
|
description: 'URL of the Forgejo instance where the release is uploaded (e.g. https://codeberg.org)'
|
|
required: true
|
|
from-owner:
|
|
description: 'the owner from which a release is to be copied (e.g forgejo-integration)'
|
|
required: true
|
|
to-owner:
|
|
description: 'the owner to which a release is to be copied (e.g. forgejo-experimental). It has be an organization in which doer has the required permissions. Or be the same as the doer'
|
|
required: true
|
|
repo:
|
|
description: 'the repository from which a release is to be copied relative to from-owner and to-owner'
|
|
default: 'forgejo'
|
|
ref-name:
|
|
description: 'ref_name of the tag of the release to be copied (e.g. github.ref_name)'
|
|
required: true
|
|
doer:
|
|
description: 'Name of the user authoring the release (e.g. release-team). The user must be authorized to create packages in to-owner and releases in to-owner/repo'
|
|
required: true
|
|
token:
|
|
description: 'application token created on forgejo by the doer, with a scope allowing it to create packages in to-owner and releases in to-owner/repo'
|
|
required: true
|
|
gpg-private-key:
|
|
description: 'GPG Private Key to sign the release artifacts'
|
|
gpg-passphrase:
|
|
description: 'Passphrase of the GPG Private Key'
|
|
verbose:
|
|
description: 'Increase the verbosity level'
|
|
default: 'false'
|
|
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- id: hostport
|
|
run: |
|
|
url="${{ inputs.forgejo }}"
|
|
hostport=${url##http*://}
|
|
hostport=${hostport%%/}
|
|
echo "value=$hostport" >> "$GITHUB_OUTPUT"
|
|
|
|
- id: tag-version
|
|
run: |
|
|
version="${{ inputs.ref-name }}"
|
|
version=${version##*v}
|
|
echo "value=$version" >> "$GITHUB_OUTPUT"
|
|
|
|
- name: apt-get install docker.io
|
|
run: |
|
|
DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -qq -y docker.io
|
|
|
|
- name: download release
|
|
uses: https://code.forgejo.org/actions/forgejo-release@v1
|
|
with:
|
|
url: ${{ inputs.forgejo }}
|
|
repo: ${{ inputs.from-owner }}/${{ inputs.repo }}
|
|
direction: download
|
|
release-dir: release
|
|
download-retry: 60
|
|
token: ${{ inputs.token }}
|
|
verbose: ${{ inputs.verbose }}
|
|
|
|
- name: upload release
|
|
uses: https://code.forgejo.org/actions/forgejo-release@v1
|
|
with:
|
|
url: ${{ inputs.forgejo }}
|
|
repo: ${{ inputs.to-owner }}/${{ inputs.repo }}
|
|
direction: upload
|
|
release-dir: release
|
|
release-notes: "See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#${{ steps.tag-version.outputs.value }}"
|
|
token: ${{ inputs.token }}
|
|
gpg-private-key: ${{ inputs.gpg-private-key }}
|
|
gpg-passphrase: ${{ inputs.gpg-passphrase }}
|
|
verbose: ${{ inputs.verbose }}
|
|
|
|
- name: login to the registry
|
|
uses: https://github.com/docker/login-action@v2
|
|
with:
|
|
registry: ${{ steps.hostport.outputs.value }}
|
|
username: ${{ inputs.doer }}
|
|
password: ${{ inputs.token }}
|
|
|
|
- uses: https://code.forgejo.org/forgejo/forgejo-container-image@v1
|
|
env:
|
|
VERIFY: 'false'
|
|
with:
|
|
url: https://${{ steps.hostport.outputs.value }}
|
|
destination-owner: ${{ inputs.to-owner }}
|
|
owner: ${{ inputs.from-owner }}
|
|
suffixes: '-rootless'
|
|
project: ${{ inputs.repo }}
|
|
tag: ${{ steps.tag-version.outputs.value }}
|
|
doer: ${{ inputs.doer }}
|
|
token: ${{ inputs.token }}
|
|
verbose: ${{ inputs.verbose }}
|