Aller au contenu

Scripts CI

Inventaire des scripts CI et utilitaires sous scripts/ et des gates qui les utilisent.


Chaque commande npm run <script> lance un script de vérification. Les commandes critiques sont exécutées en CI sur chaque PR.

CommandeScriptRôle
npm run linteslint . --ext .ts,.cjs --max-warnings=0Lint TypeScript avec frontières d’import (cf. ADR 0001)
npm run typechecktsc -p tsconfig.json --noEmitVérification TypeScript stricte
npm testvitest runTests unitaires (vitest)
npm run test:uinpm --prefix adapters/inbound/web/ui run testTests React/UI en jsdom
npm run e2eplaywright testTests end-to-end Playwright
npm run line-countscripts/check-line-counts.mjsGate de taille (refuse les monolithes au-dessus du seuil officiel 700 LoC ; les fichiers historiques >700 sont listés dans l’allowlist du script avec un motif de chantier SPEC-05 — une entrée devient automatiquement « stale » dès que le fichier repasse sous le seuil)
npm run architecture:checkscripts/check-architecture-boundaries.mjsFrontières d’import strictes entre core/adapters/composition/addons
npm run guardian:runtime:checkscripts/check-guardian-runtime-hardcode.mjsRefuse les règles/prompts longs des guardian packs recopiés dans le runtime source
npm run public-docs:checkscripts/check-public-docs.mjsRefuse AGENT-*, AUDITOR-*, DISPATCH-* et autres motifs internes dans docs/
npm run docs:linksscripts/check-doc-links.mjsVérifie les liens markdown internes (fichier + ancre)
npm run docs:orphansscripts/check-doc-orphans.mjsRefuse les docs publiques non référencées sous docs/
npm run docs:bilingualscripts/check-doc-bilingual.mjsVérifie la parité documentaire .md / .fr.md
npm run license:checkscripts/check-licenses.mjsVérifie les licences des dépendances (refuse les copyleft non autorisées)
npm run sbom:checkcyclonedx-npmGénère et valide SBOM pour root, UI, cortex-lite
npm run sbom:releasecyclonedx-npmGénère les SBOM de release sous sbom/
npm run release:tarball:checkscripts/check-release-tarball.mjsAudite le tarball de release (fichiers attendus, exclusions)

ScriptRôle
scripts/release.shVérifier la section changelog, bumper packages/lockfiles, lancer lint/test, créer le commit release DCO
scripts/smoke-binary.shSmoke test du binaire ./bin/arka-deck
scripts/init-public-repo.shPréparer un dépôt public propre (exclut les fichiers d’atelier privé, AGENTS.md, CLAUDE.md, etc.)

.github/workflows/ci.yml enchaîne les gates :

  1. Public files guard — refuse les dossiers privés/locaux d’état agent dans l’index Git
  2. Public docs guardnpm run public-docs:check
  3. Docs link checknpm run docs:links
  4. Docs orphans checknpm run docs:orphans
  5. Docs bilingual paritynpm run docs:bilingual
  6. DCO sign-off — vérifie git commit -s sur chaque commit
  7. Secret scangitleaks sur le dépôt
  8. ShellCheckshellcheck sur les scripts shell
  9. Quality (matrice Node) — lint + tests + tests UI + build + line-count + architecture-check + guardian-runtime-hardcode + typecheck + license-check + sbom-check

.github/workflows/release.yml ajoute :

  • Génération des SBOM de release
  • Génération tarball
  • Audit tarball (check-release-tarball.mjs)
  • SHA256
  • GitHub Release avec tarball, checksum et SBOM

.github/workflows/scorecard.yml lance OSSF Scorecard chaque lundi pour mesurer la posture supply-chain.


.githooks/ contient un pre-commit qui :

  • Lance le lint sur les fichiers stagés
  • Vérifie le DCO sign-off
  • Refuse les fichiers internes d’atelier privé

Activer les hooks localement :

Fenêtre de terminal
git config core.hooksPath .githooks