# Configuration — 4NK_template (projet) ## Variables d’environnement (CI) - Secrets CI uniquement (pas de secrets en clair) - **Agents IA**: `OPENAI_API_KEY`, `OPENAI_MODEL`, `OPENAI_API_BASE`, `OPENAI_TEMPERATURE` - **Release**: `RELEASE_TOKEN` (publication des releases via l’API Gitea) - **Forge**: `BASE_URL` (ex: `https://git.4nkweb.com`) - **Runner unifié**: - `RUNNER_MODE` = `agents` | `runner` | `both` (par défaut: `agents`) - `REGISTRATION_TOKEN` (requis si `RUNNER_MODE=runner` ou `both` sans config existante) - **Flag de gel CI**: - `CI_SKIP` (défaut `true` dans le template): quand `true`, les jobs CI sont court‑circuités - Définir à `false` pour réactiver la CI côté dépôt - Alternative ponctuelle: commit message `[skip ci]` ## Variables d’environnement (agents) - `AUTO_FIX` (0/1, défaut 0): active les corrections automatiques côté agents - Création de la structure `tests/**` manquante - Génération de squelettes minimalistes pour certains fichiers de `docs/` - `SCOPE` (`all`|`changed`, défaut `all`): - `all`: passe sur l’ensemble du dépôt - `changed`: focalise les contrôles/corrections sur les fichiers modifiés du dernier commit ## Conventions - Retours de ligne normalisés par CI - Dossiers `tests/logs` et `tests/reports` réservés aux artefacts ## Pré-requis agents - bash requis (job CI `bash-required`) - Fallback PowerShell utilisable localement ## Conteneur unifié (runner+agents) - Image: construite via `docker/Dockerfile.ci`, orchestrée par `docker-compose.ci.yml` - Montage: le projet courant est monté sur `/work`, les rapports dans `/work/tests/reports/agents` - Secrets locaux: `~/.4nk_template/.env` monté en lecture seule dans le conteneur Variables utilisées par l’entrypoint `docker/entrypoint.ci.sh`: - `RUNNER_MODE` détermine le mode d’exécution - `BASE_URL` et `REGISTRATION_TOKEN` servent à l’enregistrement du runner (act_runner) ## Commit message — désactiver la CI ponctuellement - Ajouter `[skip ci]` au message de commit pour ignorer un run côté Gitea Actions ## Gestion locale des secrets (~/.4nk_template/.env) - Modèle fourni: `scripts/env/.env.template` (clés sans valeurs) - Provisionnement automatique: `scripts/env/ensure_env.sh` - crée `~/.4nk_template/` (chmod 700) et `~/.4nk_template/.env` (chmod 600) si absent - copie depuis le template puis demande de compléter - vérifie les variables essentielles (ex: OPENAI_API_KEY, OPENAI_MODEL) - Chargement automatique: `scripts/agents/run.sh` source `~/.4nk_template/.env` si présent ## Lints Markdown - Configuration: `.markdownlint.json` (MD013 à 200 colonnes, MD024 en siblings_only) - CI: job `markdownlint` exécute `markdownlint-cli` sur tous les `.md` (hors `archive/**`)