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"