mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-30 11:23:56 -05:00
574e6e205b
- Document workflow - Increase verbosity if VERBOSE=true - Download the Certificate Authority if behind the VPN (cherry picked from commit168d5d5869
) (cherry picked from commitd678484159
) (cherry picked from commit1c7698055a
)
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 }}
|