Dependency at CI/CD Governance

Ipinapaliwanag ng page na ito kung paano pinapanatili ng PayCal na deterministiko ang mga dependency ng JavaScript at kung paano ipinapatupad ang mga CI gate bago ilabas.

Metadata ng Pag-verify

  • Ruta: /transparency/dependency-ci/
  • Huling na-verify:
  • Nakatakdang susunod na pagsusuri:
  • Saklaw ng pag-verify: patakaran sa package ng npm, pag-uugali ng lockfile, mga daloy ng trabaho sa GitHub Actions, at dokumentasyon ng release-gate.
  • 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.

Patakaran sa Dependency ng npm

Gumagamit ang PayCal ng lockfile-first dependency policy para sa JavaScript tooling at mga pagsusuri sa automation ng browser.

  • Install mode for automation: npm ci only (frozen lockfile install).
  • Lockfile source of truth: package-lock.json is required for deterministic CI installs.
  • Declared package manifest: package.json defines lint, smoke, and accessibility command surfaces.
  • Override controls: dependency overrides are declared in package.json to 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.

Para Saan Ginagamit ang npm

Layunin Utos Pangunahing Kontrol
JavaScript lint at sink checks npm run test:js ESLint rules + JS sink policy checks
Nagsusuri ng usok ng manunulat ng dula npm run test:smoke:ui Pag-uugali ng ruta sa antas ng browser at pagpapatunay ng regression
Pagsusuri sa ruta ng accessibility at patakaran npm run test:a11y:all WCAG, reflow, contrast, at ARIA test suite
Contrast matrix generation npm run test:a11y:contrast Pag-verify ng contrast conformance sa antas ng tema

Modelo ng CI/CD Gate

Pinaghihiwalay ng PayCal ang mga kontrol sa kalidad sa mga daloy ng trabaho upang tahasan at masusubaybayan ang mga pagkabigo:

  • .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.

Tinatrato ng mga release hygiene workflow ang mga nabigong gate bilang mga blocker at nangangailangan ng muling pagpapatakbo pagkatapos ng mga pag-aayos.

Mga Kilalang Limitasyon

  • Ang mga pampublikong transparency na pahina ay manu-manong naka-synchronize sa daloy ng trabaho at mga pagbabago sa package sa mga ikot ng paglabas.
  • Ang pag-uugali ng pipeline ng CI ay nakadokumento sa maraming page at maaaring mag-drift kung ang mga update ay hindi nailalapat nang tuluy-tuloy.

Nakaplanong Pagpapahusay sa Dokumentasyon

  • Mag-publish ng isang canonical gate matrix na nagmamapa sa bawat CI job sa may-ari, trigger, command, at status ng pagharang.
  • Magdagdag ng isang quarterly dependency governance snapshot kasama ang mga direktang npm packages, katwiran, at update cadence.
  • Magdagdag ng item ng checklist ng release para kumpirmahin na mananatiling nakahanay ang mga dokumento ng pamamahala ng npm sa daloy ng trabaho at patakaran sa lockfile.

Paano I-verify

# 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.