ajustement
validate / validate (push) Failing after 4s

This commit is contained in:
hcornet committed 2026-09-20 14:06:16 +02:00
1 parent ad3f328a12
commit 35a6102e83
4 files changed
+97 -33

No files matched your search

+3
View File
@@ -0,0 +1,3 @@
# Scripts exécutés sous Linux : fins de ligne LF même depuis Windows
*.sh text eol=lf
.env.example text eol=lf
+38
View File
@@ -0,0 +1,38 @@
#!/usr/bin/env bash
# Vérifie qu'aucun secret réel n'est versionné dans les fichiers modèles.
# Affiche uniquement le fichier et le nom de la variable fautive, jamais sa valeur.
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
status=0
# 1. .env.example : toute variable sensible doit être vide ou CHANGE_ME
while IFS= read -r line; do
key="${line%%=*}"
value="${line#*=}"
if [[ -n "$value" && "$value" != "CHANGE_ME" ]]; then
echo "SECRET VERSIONNÉ : .env.example -> ${key}"
status=1
fi
done < <(grep -E '^[A-Z0-9_]*(PASS|PASSWORD|SECRET|TOKEN|KEY)[A-Z0-9_]*=' "$ROOT/.env.example" || true)
# 2. config.monitoring : les secrets Grafana doivent référencer une variable
while IFS= read -r line; do
key="${line%%=*}"
value="${line#*=}"
if [[ "$value" != \$\{*\} ]]; then
echo "SECRET VERSIONNÉ : prometheus-grafana/grafana/config.monitoring -> ${key}"
status=1
fi
done < <(grep -E '^GF_[A-Z_]*(PASSWORD|SECRET|CLIENT_ID)=' "$ROOT/prometheus-grafana/grafana/config.monitoring" || true)
# 3. Fichiers de secrets qui ne doivent jamais être suivis par git
for f in .env traefik/crowdsec/lapi-key watchtower/access_token; do
if git -C "$ROOT" ls-files --error-unmatch "$f" >/dev/null 2>&1; then
echo "FICHIER SECRET SUIVI PAR GIT : $f"
status=1
fi
done
[[ $status -eq 0 ]] && echo "OK : aucun secret versionné détecté."
exit $status
+24
View File
@@ -0,0 +1,24 @@
# Validation uniquement : aucun conteneur n'est démarré.
# La stack utilise les mêmes noms et ports que la production de SLDOKP03,
# un "docker compose up" dans la CI entrerait en conflit avec elle.
name: validate
on:
push:
pull_request:
jobs:
validate:
runs-on: ubuntu-latest
steps:
- name: Récupération du dépôt
uses: actions/checkout@v4
- name: Aucun secret versionné
run: bash .gitea/scripts/check-secrets.sh
- name: Génération d'un .env de test
run: bash scripts/init.sh
- name: Validation de la configuration Compose
run: docker compose config --quiet
+32 -33
View File
@@ -1,44 +1,43 @@
# Environment files
# Secrets et configuration locale
.env
*.env
*env.*
!.env.example
traefik/crowdsec/lapi-key
watchtower/access_token
# Docker artifacts
/docker-data
/volumes
/tmp
# Logs
*.log
# IDE specific files
.idea/
.vscode/
# OS files
*.swp
*.swo
*._*
.DS_Store
# authentik
authentik/logs/
authentik/secrets/
authentik/db.sqlite3
authentik/users_database.yml
# Authentik
authentik/database/
authentik/redis/
authentik/data/
authentik/certs/
# CrowdSec
crowdsec/config/
crowdsec/db/
crowdsec/crowdsec-db/
crowdsec/crowdsec-config/
# DIUN
diun/data
# Traefik
traefik/logs/
traefik/acme/
traefik/certificates/
# Monitoring
prometheus-grafana/prometheus_data/
prometheus-grafana/grafana_data/
prometheus-grafana/alertmanager_data/
prometheus-grafana/tempo_data/
# Diun
diun/data/
# Homepage
homepage/config/logs/
# Traefik
traefik/logs/
traefik/acme.json
traefik/acme-staging.json
# Logs
*.log
# IDE / OS
.idea/
.vscode/
*.swp
*.swo
.DS_Store