Shared Forgejo Actions: release-on-tag, upstream drift watch, central liveness monitor, failure alerting
Find a file
ekaii d0a76da6f2
Some checks failed
liveness.yml / ekaii-ci: shared Forgejo Actions (releases, upstream-watch, liveness, alerting) (push) Failing after 0s
ekaii-ci: shared Forgejo Actions (releases, upstream-watch, liveness, alerting)
2026-07-15 12:04:38 +02:00
.forgejo/workflows ekaii-ci: shared Forgejo Actions (releases, upstream-watch, liveness, alerting) 2026-07-15 12:04:38 +02:00
docs ekaii-ci: shared Forgejo Actions (releases, upstream-watch, liveness, alerting) 2026-07-15 12:04:38 +02:00
templates ekaii-ci: shared Forgejo Actions (releases, upstream-watch, liveness, alerting) 2026-07-15 12:04:38 +02:00
LICENSE ekaii-ci: shared Forgejo Actions (releases, upstream-watch, liveness, alerting) 2026-07-15 12:04:38 +02:00
README.md ekaii-ci: shared Forgejo Actions (releases, upstream-watch, liveness, alerting) 2026-07-15 12:04:38 +02:00

ekaii-ci

Shared Forgejo-Actions building blocks for the ekaii/geyser/exo repos. Fixes four systemic gaps found in the 2026-07 repo audit:

  1. Releases/artifacts — no repo published build artifacts; deploys built from source on the target.
  2. Upstream drift — ~20 forks tracked fast-moving upstreams with no sync/alert (only luminol-ekaii had one).
  3. Dead CI — repos carried inert .github/, .woodpecker.yml, .gitlab-ci.yml that never run on Forgejo.
  4. No alerting/liveness — several pipelines died silently (GeyserExtras 07-11, infra-watchdog 06-30, plugbench-reports 06-22).

Where things run

  • Forgejo server: NAS (ugreen), container forgejo-vdbh….
  • Build runner: herbesvertes/lesannes (forgejo-runner), labels nas-build (docker socket + /opt/nas_deploy injected) and ubuntu-latest (generic, use a container:).
  • Forgejo auto-injects ${{ github.token }} (repo-scoped) — no PAT needed for same-repo release/issue API or push.
  • Org/user secret ALERT_WEBHOOK = the CI alert destination (Discord/ntfy). Set once per owner (exo / geyser / admin_ekaii).

What's here

  • .forgejo/workflows/liveness.yml — runs here, hourly/daily: flags mirrors behind upstream, a tracked Geyser extension whose Modrinth build < running Geyser, and scheduled jobs that missed their window → ALERT_WEBHOOK.
  • templates/upstream-watch.yml — drop into any fork; reads .ekaii-upstream.env, compares upstream ref to a pinned SHA, opens/updates an "Upstream drift" issue + alerts. mirror kind can fast-forward; patched kind notifies only.
  • templates/release-java.yml — on v* tag: gradle build → attach jar to a Forgejo release.
  • templates/release-docker.yml — on v* tag: build image on nas-build, push to registry, note the digest on the release.
  • templates/_alert-step.yml — the if: failure() alert snippet embedded in every template.

Rollout

See docs/ROLLOUT.md. Per repo: copy the right template into .forgejo/workflows/, add .ekaii-upstream.env for forks, delete dead .github/.woodpecker/.gitlab-ci, then push a v* tag to cut the first release.