CI/CD hardening: lint, secret scan, coverage gate, auto CVE-fix PRs, GHCR + GitHub mirror publishing #34

Merged
Djeex merged 3 commits from dev-cicd into main 2026-08-26 15:38:54 +02:00
3 Commits
Author SHA1 Message Date
Djeex 4b90945871 Publish images to GHCR and releases to the GitHub mirror
CI / build-and-scan (pull_request) Successful in 1m0s
- retag+push the same :latest/:X.Y/:X.Y.Z tags to ghcr.io/djeex/lumeex
- create a matching GitHub Release on the Djeex/lumeex mirror, same changelog
  body prefixed with a notice pointing back to the git.djeex.fr source repo
- targets the exact commit SHA (not the branch) with retries, since the
  Gitea->GitHub push mirror can lag behind this job
- requires a new GH_TOKEN secret (repo + write:packages) — not created yet
- first GHCR push per repo will be private by default; GitHub has no API to
  default it public for a personal account, needs a one-time manual toggle
2026-08-26 15:04:28 +02:00
Djeex 6eba3916b4 Add secret scanning, Dockerfile lint, ruff lint/format gate, coverage gate, and automatic CVE remediation PRs
- gitleaks (via docker cp, dockerignore-agnostic) and hadolint scan every push/PR
- new ruff lint stage (ruff.toml pins known-first-party for host/container
  consistency; F841/B007 in webui.py left un-fixed via per-file-ignores —
  app-logic changes, flagged for review rather than auto-fixed)
- pytest --cov-fail-under=90 gate on the test stage (already had pytest-cov,
  never wired into CI until now)
- scheduled Trivy critical failures now attempt an apk upgrade rebuild and open a PR
  if it clears the finding, instead of just failing red
- ruff --fix/--format applied to existing code to start the gate clean
2026-08-26 14:49:45 +02:00
Djeex 1ce8da9fe6 Simplify release changelog: commits as description (link), drop divider lines 2026-08-26 13:54:25 +02:00