mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-03 22:02:08 +03:00
ci: add docs-sync-strict + i18n-ui-coverage jobs to ci.yml
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) <noreply@anthropic.com>
This commit is contained in:
30
.github/workflows/ci.yml
vendored
30
.github/workflows/ci.yml
vendored
@@ -41,6 +41,32 @@ jobs:
|
|||||||
- run: npm run typecheck:core
|
- run: npm run typecheck:core
|
||||||
- run: npm run typecheck:noimplicit: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:
|
i18n-matrix:
|
||||||
name: Build language matrix
|
name: Build language matrix
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -462,6 +488,8 @@ jobs:
|
|||||||
if: always()
|
if: always()
|
||||||
needs:
|
needs:
|
||||||
- lint
|
- lint
|
||||||
|
- docs-sync-strict
|
||||||
|
- i18n-ui-coverage
|
||||||
- i18n
|
- i18n
|
||||||
- pr-test-policy
|
- pr-test-policy
|
||||||
|
|
||||||
@@ -507,6 +535,8 @@ jobs:
|
|||||||
echo "| Job | Status |" >> "$GITHUB_STEP_SUMMARY"
|
echo "| Job | Status |" >> "$GITHUB_STEP_SUMMARY"
|
||||||
echo "|-----|--------|" >> "$GITHUB_STEP_SUMMARY"
|
echo "|-----|--------|" >> "$GITHUB_STEP_SUMMARY"
|
||||||
echo "| Lint | $(status '${{ needs.lint.result }}') |" >> "$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 "| PR Test Policy | $(status '${{ needs.pr-test-policy.result }}') |" >> "$GITHUB_STEP_SUMMARY"
|
||||||
|
|
||||||
echo "| SonarQube | $(status '${{ needs.sonarqube.result }}') |" >> "$GITHUB_STEP_SUMMARY"
|
echo "| SonarQube | $(status '${{ needs.sonarqube.result }}') |" >> "$GITHUB_STEP_SUMMARY"
|
||||||
|
|||||||
Reference in New Issue
Block a user