854be47328
Refs: https://codeberg.org/forgejo/website/pulls/230 (cherry picked from commit87d56bf6c7
) [CI] Forgejo Actions based release process (squash) base64 -w0 to avoid wrapping when the doer name is long as it creates a broken config.json (cherry picked from commit9efdc27e49
) [CI] Forgejo Actions based release process (squash) generate .xz files and sources Generate .xz files Check .sha256 Generate the source tarbal (cherry picked from commit7afec520c4
) [CI] Forgejo Actions based release process (squash) release notes (cherry picked from commitd8f4f4807b
) [CI] Forgejo Actions based release process (squash) publish and sign release (cherry picked from commita52778c747
) (cherry picked from commitcf2ec62740
) [CI] Forgejo Actions based release process (squash) version use Actions environment variables in Makefile (#25319) (#25318) uses Actions variable to determine the version. But Forgejo builds happen in a container where they are not available. Do not use them. Also verify the version of the binary is as expected for sanity check. (cherry picked from commit6decf111a1
) (cherry picked from commit206d0b3886
) [CI] read STORED_VERSION_FILE if available (cherry picked from commitaf74085ebf
) [CI] backward compatible executable compilation Add a new static-executable target to use in Dockerfiles and restore the $(EXECUTABLE) target to what it was before to for backward compatibility. The release process now builds static executables instead of dynamically linked ones which makes them more portable. It changes the requirements at compile time and is not backward compatible. In particular it may break packaging that rely on the target that currently creates a dynamically linked executable. (cherry picked from commit84d02a174a
)
93 lines
3 KiB
YAML
93 lines
3 KiB
YAML
name: 'Publish release'
|
|
author: 'Forgejo authors'
|
|
description: |
|
|
Publish release
|
|
|
|
inputs:
|
|
forgejo:
|
|
description: 'URL of the Forgejo instance where the release is uploaded'
|
|
required: true
|
|
from-owner:
|
|
description: 'the owner from which a release is to be copied'
|
|
required: true
|
|
to-owner:
|
|
description: 'the owner to which a release is to be copied'
|
|
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'
|
|
required: true
|
|
doer:
|
|
description: 'Name of the user authoring the release'
|
|
required: true
|
|
token:
|
|
description: 'application token on FORGEJO with permission to the repository and the packages'
|
|
required: true
|
|
gpg-private-key:
|
|
description: 'GPG Private Key to sign the release artifacts'
|
|
gpg-passphrase:
|
|
description: 'Passphrase of the GPG Private Key'
|
|
|
|
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 }}
|
|
|
|
- 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 }}
|
|
|
|
- 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 }}
|