From 7e9fa67132cfcc1c2d0370127cabb77b3f1af5a3 Mon Sep 17 00:00:00 2001 From: Steven Enamakel <31011319+senamakel@users.noreply.github.com> Date: Sat, 30 May 2026 00:43:17 -0700 Subject: [PATCH] ci: gate PRs on i18n key parity (#3011) --- .github/workflows/pr-ci.yml | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/.github/workflows/pr-ci.yml b/.github/workflows/pr-ci.yml index be3c66ed9..c1cc73945 100644 --- a/.github/workflows/pr-ci.yml +++ b/.github/workflows/pr-ci.yml @@ -68,6 +68,39 @@ jobs: env: NODE_ENV: test + i18n-coverage: + name: i18n Coverage (parity) + runs-on: ubuntu-22.04 + container: + image: ghcr.io/tinyhumansai/openhuman_ci:rust-1.93.0 + steps: + - name: Checkout code + uses: actions/checkout@v5 + with: + fetch-depth: 1 + + - name: Cache pnpm store + id: pnpm-cache + uses: actions/cache/restore@v5 + with: + path: .pnpm-store + key: pnpm-store-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }} + restore-keys: | + pnpm-store-${{ runner.os }}- + + - name: Install dependencies + run: bash scripts/ci-cancel-aware.sh pnpm install --frozen-lockfile + + - name: Save pnpm store cache + if: always() && steps.pnpm-cache.outputs.cache-hit != 'true' + uses: actions/cache/save@v5 + with: + path: .pnpm-store + key: ${{ steps.pnpm-cache.outputs.cache-primary-key }} + + - name: Verify i18n coverage (missing / extra / drifted keys across locales) + run: bash scripts/ci-cancel-aware.sh pnpm i18n:check + rust-quality: name: Rust Quality (fmt, clippy) runs-on: ubuntu-22.04