Drift-detection pipeline #13
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
A pipeline in ci-scripts (cron or push-triggered) that re-renders every manifest entry and diffs against each target repo's HEAD; on drift it opens/updates an issue in ci-scripts. Only needs to guard the thin pipelines once migration lands.
See Spec/Modern-CI-Target for requirements.
Drift-detection pipeline: implemented and verified
drift_check.py(commit1fb1cfa): importsgenerate.render/render_thindirectly, fetches each manifest-listed repo's live HEAD.woodpecker.yamlover the Gitea API (works from a bareci-scriptsclone — no need for local../building/*checkouts likegenerate.py --check), diffs, and opens/updates a single "CI drift detected" issue on drift (auto-closes it when clean)..woodpecker/drift.yaml(commit1fb1cfa): cron + manual triggered pipeline.ci_drift_tokenorg secret (read:repository + write:issue), separate from #11'sgitea_clone_tokenso scopes stay minimal per-purpose.ci-drift-check, daily 06:00 UTC, enabled).Bug found and fixed during verification
First manual dispatch (pipeline #5) failed:
nix shell nixpkgs#python3 nixpkgs#python3Packages.pyyaml -c python3 drift_check.pyputs both derivations' binaries on PATH but doesn't linkpyyamlinto thatpython3's site-packages (classicnix shellcomposition gotcha) —ModuleNotFoundError: No module named 'yaml'. Fixed (commit984a239) by switching tonix-shell -p 'python3.withPackages (ps: [ ps.pyyaml ])' --run 'python3 drift_check.py', verified locally first.Verification
Re-dispatched the cron fresh against
984a239→ pipeline #7, success. Final log line:no drift(expected — manifest.yaml already matches every rendered.woodpecker.yaml).Closing.