Earl Warren
1501294af0
a 24h delay may not be such a good idea when relying ont this mirror for security releases
72 lines
2.6 KiB
YAML
72 lines
2.6 KiB
YAML
#
|
|
# secrets.CODEBERG_TOKEN
|
|
# codeberg.org/forgejo-release-mirror user - token FORGEJO_TOKEN https://code.forgejo.org/forgejo/forgejo - read:all
|
|
#
|
|
# secrets.CODE_FORGEJO_TOKEN
|
|
# code.forgejo.org/forgejo-mirror user - token CODE_FORGEJO_TOKEN https://code.forgejo.org/forgejo/forgejo - write:package, write:repository, read:user
|
|
#
|
|
on:
|
|
schedule:
|
|
- cron: '@hourly'
|
|
|
|
push:
|
|
branches:
|
|
- 'main'
|
|
|
|
jobs:
|
|
publish:
|
|
runs-on: self-hosted
|
|
steps:
|
|
- name: find missing version
|
|
id: forgejo-version
|
|
shell: bash
|
|
run: |
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
apt-get -qq update && apt-get -q install -y -qq curl jq wget
|
|
function get_versions() {
|
|
local host=$1
|
|
curl -sS https://$host/api/v1/repos/forgejo/forgejo/releases | jq -r '.[] | .tag_name' | grep -v -e '-rc' | sort
|
|
}
|
|
get_versions codeberg.org > /tmp/codeberg
|
|
get_versions code.forgejo.org > /tmp/forgejo
|
|
version=$(comm -23 /tmp/codeberg /tmp/forgejo | head -1)
|
|
if test "$version" ; then
|
|
echo $version is missing
|
|
echo value=$version >> $GITHUB_OUTPUT
|
|
else
|
|
echo all versions have been copied already
|
|
cat /tmp/codeberg
|
|
fi
|
|
|
|
- uses: actions/checkout@v3
|
|
if: steps.forgejo-version.outputs.value != ''
|
|
|
|
- name: get the SHA of the version
|
|
if: steps.forgejo-version.outputs.value != ''
|
|
id: forgejo-sha
|
|
run: |
|
|
set -x
|
|
# it may fail if the mirror of the git repository was not done yet and
|
|
# the tag is still missing, it will happen the next day
|
|
if git fetch origin ${{ steps.forgejo-version.outputs.value }} ; then
|
|
sha=$(git rev-parse FETCH_HEAD)
|
|
fi
|
|
echo "value=$sha" >> "$GITHUB_OUTPUT"
|
|
|
|
- name: copy missing version
|
|
if: steps.forgejo-version.outputs.value != '' && steps.forgejo-sha.outputs.value != ''
|
|
uses: https://code.forgejo.org/forgejo/forgejo-build-publish/publish@v2
|
|
with:
|
|
from-forgejo: https://codeberg.org
|
|
from-owner: forgejo
|
|
to-forgejo: https://code.forgejo.org
|
|
to-owner: forgejo
|
|
repo: forgejo
|
|
ref-name: ${{ steps.forgejo-version.outputs.value }}
|
|
sha: ${{ steps.forgejo-sha.outputs.value }}
|
|
release-notes: "See https://codeberg.org/forgejo/forgejo/src/branch/forgejo/RELEASE-NOTES.md#{ANCHOR}"
|
|
from-token: ${{ secrets.CODEBERG_TOKEN }}
|
|
to-doer: forgejo-mirror
|
|
to-token: ${{ secrets.CODE_FORGEJO_TOKEN }}
|
|
verbose: ${{ vars.VERBOSE }}
|