ci(release): upgrade v*.next.forgejo.org when the release is ready
The https://v$major.next.forgejo.org instances are polling for new releases with a cron job every hour. This is not only a waste of resources because there is nothing most of the time, it also imposes a delay of maximum one hour when there is a new release. When the release is published, notify the corresponding instance that an upgrade is ready. In the request will 404 but leave a trace in the logs which can trigger an upgrade script if wakeup-on-logs is configured accordingly. GET https://v$major.next.forgejo.org/.well-known/wakeup-on-logs/forgejo-v$major * v8 - a daemon watching on the web server logs was installed for https://v8.next.forgejo.org and will perform the upgrade. * v7 - nothing will happen for https://v7.next.forgejo.org because it still relies on the hourly cron job. * v1.21 - nothing will happen because https://v1.next.forgejo.org does not exist. See also: * https://forgejo.org/docs/next/developer/infrastructure * https://code.forgejo.org/infrastructure/wakeup-on-logs
This commit is contained in:
parent
c5362d5f9e
commit
abf72a42e7
@ -59,6 +59,16 @@ jobs:
|
|||||||
gpg-passphrase: ${{ secrets.GPG_PASSPHRASE }}
|
gpg-passphrase: ${{ secrets.GPG_PASSPHRASE }}
|
||||||
verbose: ${{ vars.VERBOSE }}
|
verbose: ${{ vars.VERBOSE }}
|
||||||
|
|
||||||
|
- name: upgrade v*.next.forgejo.org
|
||||||
|
run: |
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
apt-get update -qq
|
||||||
|
apt-get -q install -y -qq curl
|
||||||
|
version="${{ github.ref_name }}"
|
||||||
|
version=${version##*v}
|
||||||
|
major=$(echo $version | sed -E -e 's/^([0-9]+).*/\1/')
|
||||||
|
# https://forgejo.org/docs/next/developer/infrastructure
|
||||||
|
curl -o /dev/null -sS https://v$major.next.forgejo.org/.well-known/wakeup-on-logs/forgejo-v$major
|
||||||
|
|
||||||
- name: set up go for the DNS update below
|
- name: set up go for the DNS update below
|
||||||
if: vars.ROLE == 'forgejo-experimental' && secrets.OVH_APP_KEY != ''
|
if: vars.ROLE == 'forgejo-experimental' && secrets.OVH_APP_KEY != ''
|
||||||
|
Loading…
Reference in New Issue
Block a user