diff --git a/.github/workflows/i18n_check.yaml b/.github/workflows/i18n_check.yaml new file mode 100644 index 0000000000..2acfb12685 --- /dev/null +++ b/.github/workflows/i18n_check.yaml @@ -0,0 +1,40 @@ +name: i18n Check +on: + workflow_call: { } +jobs: + check: + runs-on: ubuntu-latest + permissions: + pull-requests: read + steps: + - uses: actions/checkout@v3 + + - name: "Get modified files" + id: changed_files + if: github.event_name == 'pull_request' && github.event.pull_request.user.login != 'RiotTranslateBot' + uses: tj-actions/changed-files@v19 + with: + files: | + src/i18n/strings/* + files_ignore: | + src/i18n/strings/en_EN.json + + - name: "Assert only en_EN was modified" + if: | + github.event_name == 'pull_request' && + github.event.pull_request.user.login != 'RiotTranslateBot' && + steps.changed_files.outputs.any_modified == 'true' + run: | + echo "Only translation files modified by `yarn i18n` can be committed - other translation files will confuse weblate in unrecoverable ways." + exit 1 + + - uses: actions/setup-node@v3 + with: + cache: 'yarn' + + # Does not need branch matching as only analyses this layer + - name: Install Deps + run: "yarn install --pure-lockfile" + + - name: i18n Check + run: "yarn run diff-i18n" diff --git a/.github/workflows/static_analysis.yaml b/.github/workflows/static_analysis.yaml index 266f7c728a..82a99190a4 100644 --- a/.github/workflows/static_analysis.yaml +++ b/.github/workflows/static_analysis.yaml @@ -39,41 +39,7 @@ jobs: i18n_lint: name: "i18n Check" - runs-on: ubuntu-latest - permissions: - pull-requests: read - steps: - - uses: actions/checkout@v2 - - - name: "Get modified files" - id: changed_files - if: github.event_name == 'pull_request' && github.actor != 'RiotTranslateBot' - uses: tj-actions/changed-files@v19 - with: - files: | - src/i18n/strings/* - files_ignore: | - src/i18n/strings/en_EN.json - - - name: "Assert only en_EN was modified" - if: | - github.event_name == 'pull_request' && - github.actor != 'RiotTranslateBot' && - steps.changed_files.outputs.any_modified == 'true' - run: | - echo "You can only modify en_EN.json, do not touch any of the other i18n files as Weblate will be confused" - exit 1 - - - uses: actions/setup-node@v3 - with: - cache: 'yarn' - - # Does not need branch matching as only analyses this layer - - name: Install Deps - run: "yarn install" - - - name: i18n Check - run: "yarn run diff-i18n" + uses: matrix-org/matrix-react-sdk/.github/workflows/i18n_check.yml@develop js_lint: name: "ESLint"