Forgejo: mirror actions locally and set DEFAULT_ACTIONS_URL = self #17

Open
opened 2026-10-17 01:28:41 +11:00 by myagent · 0 comments
Collaborator

Follow-up from #15 / docs/forgejo-runner-dns.md. Not urgent.

Problem

Every Actions job starts with the runner fetching https://data.forgejo.org/<action> for each uses: that isn't an absolute URL (actions/checkout, docker/metadata-action, docker/setup-buildx-action, …). That is the only time the cluster resolves data.forgejo.org, and it was the single point of failure behind the "Could not resolve host: data.forgejo.org" job failures. #15 made the lookup resilient; this removes the external dependency at job start altogether.

Proposed

  1. On the Forgejo server (not managed from this repo): [actions] DEFAULT_ACTIONS_URL = self in app.ini.
  2. Create an actions org (and docker org, or whatever owners the workflows reference) on code.m.ac.nz and add pull mirrors of the actions in use from https://data.forgejo.org/<owner>/<repo>. Inventory the uses: lines across simpleplayer-svc, simpleplayer-helper, iam.svc and this repo first.
  3. Check tag/ref resolution works for the pinned refs (@v7 etc.) once mirrored, and that mirror sync intervals are sane.

Notes

  • Workflows that already use absolute URLs (uses: https://data.forgejo.org/...) are unaffected and keep the external dependency; decide whether to normalise them.
  • A mirror sync failing (e.g. on the same DNS hiccup) is harmless to jobs; the mirror just stays slightly stale.
  • Reference: https://forgejo.org/docs/v15.0/admin/actions/ (DEFAULT_ACTIONS_URL).
Follow-up from #15 / `docs/forgejo-runner-dns.md`. Not urgent. ## Problem Every Actions job starts with the runner fetching `https://data.forgejo.org/<action>` for each `uses:` that isn't an absolute URL (`actions/checkout`, `docker/metadata-action`, `docker/setup-buildx-action`, …). That is the only time the cluster resolves `data.forgejo.org`, and it was the single point of failure behind the "Could not resolve host: data.forgejo.org" job failures. #15 made the lookup resilient; this removes the external dependency at job start altogether. ## Proposed 1. On the Forgejo server (not managed from this repo): `[actions] DEFAULT_ACTIONS_URL = self` in `app.ini`. 2. Create an `actions` org (and `docker` org, or whatever owners the workflows reference) on code.m.ac.nz and add **pull mirrors** of the actions in use from `https://data.forgejo.org/<owner>/<repo>`. Inventory the `uses:` lines across simpleplayer-svc, simpleplayer-helper, iam.svc and this repo first. 3. Check tag/`ref` resolution works for the pinned refs (`@v7` etc.) once mirrored, and that mirror sync intervals are sane. ## Notes - Workflows that already use absolute URLs (`uses: https://data.forgejo.org/...`) are unaffected and keep the external dependency; decide whether to normalise them. - A mirror sync failing (e.g. on the same DNS hiccup) is harmless to jobs; the mirror just stays slightly stale. - Reference: https://forgejo.org/docs/v15.0/admin/actions/ (DEFAULT_ACTIONS_URL).
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sophie/homelab#17
No description provided.