name: Frontend # Pourquoi : aucun déclencheur propre. ci.yml appelle ce workflow quand le frontend change, et # Sonar y reprend la couverture versée par le job `verification` (ADR 0014). on: workflow_call: permissions: contents: read jobs: # Un seul `npm ci` pour la construction et les tests : un job de plus ne ferait que le rejouer. verification: name: Construction et tests runs-on: ubuntu-latest timeout-minutes: 15 defaults: run: working-directory: apps/frontend steps: - name: Récupère le dépôt uses: actions/checkout@v7 - name: Installe Node uses: actions/setup-node@v7 with: node-version: 26 cache: npm cache-dependency-path: apps/frontend/package-lock.json - name: Installe les dépendances run: npm ci - name: Construit l'application run: npm run build # Piège : `npm test --watch=false` garde l'option pour npm, `ng test` ne la reçoit jamais. # La couverture lcov vient d'angular.json (`coverage: true`). - name: Tests et couverture run: npm run test:ci - name: Verse la couverture pour Sonar uses: actions/upload-artifact@v7 with: name: frontend-coverage path: apps/frontend/coverage/frontend/lcov.info if-no-files-found: error security-audit: name: Audit des dépendances runs-on: ubuntu-latest timeout-minutes: 10 defaults: run: working-directory: apps/frontend steps: - name: Récupère le dépôt uses: actions/checkout@v7 - name: Installe Node uses: actions/setup-node@v7 with: node-version: 26 # Seuil high : une vulnérabilité moderate de devDependency ne doit pas bloquer une livraison. - name: Audite le verrou run: npm audit --audit-level=high --package-lock-only