Consolidate i18n check into a reusable workflow (#8634)
* Fix i18n check bypass for RiotTranslateBot * Consolidate i18n check into a reusable workflow * Update .github/workflows/i18n_check.yaml Co-authored-by: Travis Ralston <travisr@matrix.org> Co-authored-by: Travis Ralston <travisr@matrix.org>pull/28788/head^2
							parent
							
								
									f7ba3f07cd
								
							
						
					
					
						commit
						896c8c9035
					
				| 
						 | 
				
			
			@ -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"
 | 
			
		||||
| 
						 | 
				
			
			@ -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"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue