Métadonnées de vérification
- Itinéraire :
/transparency/dependency-ci/ - Dernière vérification :
- Prochaine révision prévue :
- Portée de la vérification : Politique de package npm, comportement du fichier de verrouillage, flux de travail GitHub Actions et documentation de la porte de publication.
- Previous version: Dependency and CI/CD Governance before the June 2026 tooling update
June 2026 CI/CD Tooling Update
This page now links to the complete CI/CD Tooling and Release Governance article. That article documents local hooks, public-health gates, release-ledger promotion, production receipts, and portability work in one place.
Politique de dépendance npm
PayCal utilise une politique de dépendance lockfile-first pour les outils JavaScript et les vérifications d'automatisation du navigateur.
- Install mode for automation:
npm cionly (frozen lockfile install). - Lockfile source of truth:
package-lock.jsonis required for deterministic CI installs. - Declared package manifest:
package.jsondefines lint, smoke, and accessibility command surfaces. - Override controls: dependency overrides are declared in
package.jsonto pin selected transitive risk points.
If npm ci reports a mismatch between package.json and package-lock.json, the lockfile is updated intentionally in a dedicated maintenance change before CI reruns.
À quoi sert npm
| Objectif | Commande | Contrôle primaire |
|---|---|---|
| Vérifications des peluches et des éviers JavaScript | npm run test:js |
Règles ESLint + vérifications de la politique du récepteur JS |
| Chèques fumigènes d'un dramaturge | npm run test:smoke:ui |
Comportement des itinéraires au niveau du navigateur et validation de la régression |
| Vérifications des itinéraires et des politiques d’accessibilité | npm run test:a11y:all |
Suites de tests WCAG, redistribution, contraste et ARIA |
| Génération de matrice de contraste | npm run test:a11y:contrast |
Vérification de la conformité du contraste au niveau du thème |
Modèle de porte CI/CD
PayCal sépare les contrôles de qualité entre les flux de travail afin que les échecs soient explicites et traçables :
.github/workflows/javascript.yml: Node 20 +npm ci+ JavaScript quality gates..github/workflows/phpunit.yml: staged backend validation from fast gate to deep verification and artifacts..github/workflows/phpstan.yml: strict static analysis with baseline-blocking policy.
Les workflows d'hygiène des versions traitent les portes défaillantes comme des bloqueurs et nécessitent une réexécution après les correctifs.
Limites connues
- Les pages de transparence publique sont synchronisées manuellement avec les modifications du flux de travail et des packages lors des cycles de publication.
- Le comportement du pipeline CI est documenté sur plusieurs pages et peut dériver si les mises à jour ne sont pas appliquées de manière cohérente.
Améliorations prévues de la documentation
- Publiez une matrice de portes canonique mappant chaque tâche CI au propriétaire, au déclencheur, à la commande et à l'état de blocage.
- Ajoutez un instantané trimestriel de la gouvernance des dépendances comprenant les packages NPM directs, la justification et la cadence de mise à jour.
- Ajoutez un élément de la liste de contrôle de publication pour confirmer que les documents de gouvernance npm restent alignés sur la politique de flux de travail et de fichier de verrouillage.
Comment vérifier
# Reproduce JavaScript CI gates locally npm ci npm run test:js # Reproduce broader release-level accessibility gate npm run test:a11y:all # Inspect workflow definitions cat .github/workflows/javascript.yml cat .github/workflows/phpunit.yml cat .github/workflows/phpstan.yml
Related transparency pages: CI/CD Tooling and Release Governance, Testing and Validation Governance, and Verification and Governance.