Shared Forgejo Actions: release-on-tag, upstream drift watch, central liveness monitor, failure alerting
|
Some checks failed
liveness.yml / ekaii-ci: shared Forgejo Actions (releases, upstream-watch, liveness, alerting) (push) Failing after 0s
|
||
|---|---|---|
| .forgejo/workflows | ||
| docs | ||
| templates | ||
| LICENSE | ||
| README.md | ||
ekaii-ci
Shared Forgejo-Actions building blocks for the ekaii/geyser/exo repos. Fixes four systemic gaps found in the 2026-07 repo audit:
- Releases/artifacts — no repo published build artifacts; deploys built from source on the target.
- Upstream drift — ~20 forks tracked fast-moving upstreams with no sync/alert (only luminol-ekaii had one).
- Dead CI — repos carried inert
.github/,.woodpecker.yml,.gitlab-ci.ymlthat never run on Forgejo. - 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), containerforgejo-vdbh…. - Build runner:
herbesvertes/lesannes (forgejo-runner), labelsnas-build(docker socket +/opt/nas_deployinjected) andubuntu-latest(generic, use acontainer:). - 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.mirrorkind can fast-forward;patchedkind notifies only.templates/release-java.yml— onv*tag: gradle build → attach jar to a Forgejo release.templates/release-docker.yml— onv*tag: build image onnas-build, push to registry, note the digest on the release.templates/_alert-step.yml— theif: 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.