Files
management/.gitlab-ci.yml
T
Thore Cimbal f6d843672b feat: add the staleness check decided in the retro
Looks for things that quietly stopped working. Every check mirrors a case that actually happened this month, named in its docstring: a repo that was never mirrored, mirror drift, pipelines with zero jobs, a successful job without artifacts, an npm package too small to contain a build, and Authentik blueprints stuck on error. Nothing is checked on suspicion.

The project list is read from the group at runtime rather than maintained in code - a hardcoded list is exactly where a new repo slips through for years. The first run proved the point by surfacing two projects nobody had in mind.

It aborts when a credential is missing instead of skipping quietly. A check that disables itself reports nothing for years and is indistinguishable from all clear.

Refs axion1337.chat/management#28
2026-08-09 12:00:00 +00:00

36 lines
1.4 KiB
YAML

# CI des management-Repos. Enthaelt bewusst nur die Stillstandspruefung — hier
# liegt Dokumentation, es gibt nichts zu bauen.
#
# Die Pruefung sucht Dinge, die leise aufgehoert haben zu funktionieren. Anlass ist
# die Retro vom 2026-08-09: sechs solcher Faelle in neun Tagen, keiner davon durch
# eine Ueberwachung gefunden.
stages:
- pruefen
# Nur geplant und von Hand. Bei jedem Doku-Commit zu laufen brächte nichts —
# die Pruefung sieht auf den Zustand des Verbunds, nicht auf diesen Commit.
stillstandspruefung:
stage: pruefen
image: python:3.12-alpine
rules:
- if: $CI_PIPELINE_SOURCE == "schedule"
- if: $CI_PIPELINE_SOURCE == "web"
variables:
LAB_CA: "$CI_PROJECT_DIR/ci/lab-ca-chain.crt"
before_script:
- apk add --no-cache curl ca-certificates >/dev/null
script:
# Ohne Token laeuft nichts — und das soll laut auffallen. Eine Pruefung, die
# sich still selbst ueberspringt, waere genau der Fehler, den sie sucht.
- |
if [ -z "$GITLAB_TOKEN" ]; then
echo "GITLAB_TOKEN fehlt (Gruppen-Token mit read_api)."
echo "Ohne Lesezugriff kann nichts geprueft werden - siehe management#31."
exit 1
fi
- python3 scripts/stillstandspruefung.py
# Befunde sind kein Betriebsausfall, aber sie sollen sichtbar bleiben. Die rote
# Pipeline ist bei uns die Alarmanlage (gitops/CLAUDE.md, TURN-Rotation).
allow_failure: false