From acf6b93df236832cd2b7f8ce6ea759951139a267 Mon Sep 17 00:00:00 2001 From: diegosouzapw Date: Wed, 13 May 2026 19:25:50 -0300 Subject: [PATCH] ci: add docs-sync-strict + i18n-ui-coverage jobs to ci.yml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds two strict drift gates that mirror (and harden) the new pre-commit advisories from FASE 8: - docs-sync-strict: runs `npm run check:docs-all` (docs version sync, counts, env-doc contract, deprecated versions, and the new internal doc-links checker) plus the i18n translation-drift check in strict mode. - i18n-ui-coverage: enforces ≥80% UI message coverage across every configured locale. Both jobs slot in immediately after `lint`, reusing the existing setup-node@v6 + cache pattern. They are also wired into ci-summary (`needs` + dashboard table) so the dashboard surfaces their status. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/ci.yml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d8a8b13a79..420299a3df 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -41,6 +41,32 @@ jobs: - run: npm run typecheck:core - run: npm run typecheck:noimplicit:core + docs-sync-strict: + name: Docs Sync (Strict) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 + with: + node-version: ${{ env.CI_NODE_VERSION }} + cache: npm + - run: npm ci + - run: npm run check:docs-all + - name: i18n translation drift (strict) + run: node scripts/i18n/check-translation-drift.mjs + + i18n-ui-coverage: + name: i18n UI Coverage + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 + with: + node-version: ${{ env.CI_NODE_VERSION }} + cache: npm + - run: npm ci + - run: node scripts/i18n/check-ui-keys-coverage.mjs --threshold=80 + i18n-matrix: name: Build language matrix runs-on: ubuntu-latest @@ -462,6 +488,8 @@ jobs: if: always() needs: - lint + - docs-sync-strict + - i18n-ui-coverage - i18n - pr-test-policy @@ -507,6 +535,8 @@ jobs: echo "| Job | Status |" >> "$GITHUB_STEP_SUMMARY" echo "|-----|--------|" >> "$GITHUB_STEP_SUMMARY" echo "| Lint | $(status '${{ needs.lint.result }}') |" >> "$GITHUB_STEP_SUMMARY" + echo "| Docs Sync (Strict) | $(status '${{ needs.docs-sync-strict.result }}') |" >> "$GITHUB_STEP_SUMMARY" + echo "| i18n UI Coverage | $(status '${{ needs.i18n-ui-coverage.result }}') |" >> "$GITHUB_STEP_SUMMARY" echo "| PR Test Policy | $(status '${{ needs.pr-test-policy.result }}') |" >> "$GITHUB_STEP_SUMMARY" echo "| SonarQube | $(status '${{ needs.sonarqube.result }}') |" >> "$GITHUB_STEP_SUMMARY"