merge l10n related jobs to new workflow
l10n.yml will run after integration.yml COMPLETES successfully (will defer anything depending on integration.yml until heavy loads like container building are moved to separate workflows) and in master branch. Dispatch and Crontab triggers only the "pr" job. After every integration.yml workflow completes successfully (we probably should change this to run even if integration.yml fails?), only the "update" job runs. Style changes, cleanup and improved integration with CI by leveraging the use of shared cache between all workflows (not functional until all workflows have been refactored).
This commit is contained in:
		
							parent
							
								
									48456caeb3
								
							
						
					
					
						commit
						f9cce673d0
					
				
							
								
								
									
										42
									
								
								.github/workflows/integration.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										42
									
								
								.github/workflows/integration.yml
									
									
									
									
										vendored
									
									
								
							| @ -47,48 +47,6 @@ jobs: | ||||
|       - name: Build themes | ||||
|         run: make themes.all | ||||
| 
 | ||||
|   babel: | ||||
|     name: Update translations branch | ||||
|     runs-on: ubuntu-24.04 | ||||
|     if: ${{ github.repository_owner == 'searxng' && github.ref == 'refs/heads/master' }} | ||||
|     needs: | ||||
|       - python | ||||
|       - themes | ||||
|     permissions: | ||||
|       contents: write  # for make V=1 weblate.push.translations | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         with: | ||||
|           fetch-depth: '0' | ||||
|           token: ${{ secrets.WEBLATE_GITHUB_TOKEN }} | ||||
|       - name: Set up Python | ||||
|         uses: actions/setup-python@v5 | ||||
|         with: | ||||
|           python-version: '3.12' | ||||
|           architecture: 'x64' | ||||
|       - name: Cache Python dependencies | ||||
|         id: cache-python | ||||
|         uses: actions/cache@v4 | ||||
|         with: | ||||
|           path: | | ||||
|             ./local | ||||
|             ./.nvm | ||||
|             ./node_modules | ||||
|           key: python-ubuntu-20.04-3.12-${{ hashFiles('requirements*.txt', 'setup.py','.nvmrc', 'package.json') }} | ||||
|       - name: weblate & git setup | ||||
|         env: | ||||
|           WEBLATE_CONFIG: ${{ secrets.WEBLATE_CONFIG }} | ||||
|         run: | | ||||
|           mkdir -p ~/.config | ||||
|           echo "${WEBLATE_CONFIG}" > ~/.config/weblate | ||||
|           git config --global user.email "searxng-bot@users.noreply.github.com" | ||||
|           git config --global user.name "searxng-bot" | ||||
|       - name: Update transations | ||||
|         id: update | ||||
|         run: | | ||||
|           make V=1 weblate.push.translations | ||||
| 
 | ||||
|   dockers: | ||||
|     name: Docker | ||||
|     if: github.ref == 'refs/heads/master' | ||||
|  | ||||
							
								
								
									
										134
									
								
								.github/workflows/l10n.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										134
									
								
								.github/workflows/l10n.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,134 @@ | ||||
| --- | ||||
| name: Translation | ||||
| 
 | ||||
| # yamllint disable-line rule:truthy | ||||
| on: | ||||
|   workflow_dispatch: | ||||
|   workflow_run: | ||||
|     workflows: | ||||
|       - Integration | ||||
|     types: | ||||
|       - completed | ||||
|     branches: | ||||
|       - master | ||||
|   schedule: | ||||
|     - cron: "05 07 * * 5" | ||||
| 
 | ||||
| concurrency: | ||||
|   group: ${{ github.workflow }}-${{ github.ref_name }} | ||||
|   cancel-in-progress: false | ||||
| 
 | ||||
| permissions: | ||||
|   contents: read | ||||
| 
 | ||||
| env: | ||||
|   PYTHON_VERSION: "3.13" | ||||
| 
 | ||||
| jobs: | ||||
|   update: | ||||
|     if: github.repository_owner == 'searxng' && github.event.workflow_run.conclusion == 'success' | ||||
|     name: Update | ||||
|     runs-on: ubuntu-24.04-arm | ||||
|     permissions: | ||||
|       # For "make V=1 weblate.push.translations" | ||||
|       contents: write | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Setup Python | ||||
|         uses: actions/setup-python@v5 | ||||
|         with: | ||||
|           python-version: "${{ env.PYTHON_VERSION }}" | ||||
| 
 | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         with: | ||||
|           token: "${{ secrets.WEBLATE_GITHUB_TOKEN }}" | ||||
|           fetch-depth: "0" | ||||
| 
 | ||||
|       - name: Setup cache Python | ||||
|         uses: actions/cache@v4 | ||||
|         with: | ||||
|           key: "python-${{ env.PYTHON_VERSION }}-${{ runner.arch }}-${{ hashFiles('./requirements*.txt') }}" | ||||
|           restore-keys: "python-${{ env.PYTHON_VERSION }}-${{ runner.arch }}-" | ||||
|           path: "./local/" | ||||
| 
 | ||||
|       - name: Setup venv | ||||
|         run: make V=1 install | ||||
| 
 | ||||
|       - name: Setup Weblate | ||||
|         run: | | ||||
|           mkdir -p ~/.config | ||||
|           echo "${{ secrets.WEBLATE_CONFIG }}" > ~/.config/weblate | ||||
| 
 | ||||
|       - name: Setup Git | ||||
|         run: | | ||||
|           git config --global user.email "searxng-bot@users.noreply.github.com" | ||||
|           git config --global user.name "searxng-bot" | ||||
| 
 | ||||
|       - name: Update translations | ||||
|         run: make V=1 weblate.push.translations | ||||
| 
 | ||||
|   pr: | ||||
|     if: | | ||||
|       github.repository_owner == 'searxng' | ||||
|       && (github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') | ||||
|     name: Pull Request | ||||
|     runs-on: ubuntu-24.04-arm | ||||
|     permissions: | ||||
|       # For "make V=1 weblate.translations.commit" | ||||
|       contents: write | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Setup Python | ||||
|         uses: actions/setup-python@v5 | ||||
|         with: | ||||
|           python-version: "${{ env.PYTHON_VERSION }}" | ||||
| 
 | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         with: | ||||
|           token: "${{ secrets.WEBLATE_GITHUB_TOKEN }}" | ||||
|           fetch-depth: "0" | ||||
| 
 | ||||
|       - name: Setup cache Python | ||||
|         uses: actions/cache@v4 | ||||
|         with: | ||||
|           key: "python-${{ env.PYTHON_VERSION }}-${{ runner.arch }}-${{ hashFiles('./requirements*.txt') }}" | ||||
|           restore-keys: "python-${{ env.PYTHON_VERSION }}-${{ runner.arch }}-" | ||||
|           path: "./local/" | ||||
| 
 | ||||
|       - name: Setup venv | ||||
|         run: make V=1 install | ||||
| 
 | ||||
|       - name: Setup Weblate | ||||
|         run: | | ||||
|           mkdir -p ~/.config | ||||
|           echo "${{ secrets.WEBLATE_CONFIG }}" > ~/.config/weblate | ||||
| 
 | ||||
|       - name: Setup Git | ||||
|         run: | | ||||
|           git config --global user.email "searxng-bot@users.noreply.github.com" | ||||
|           git config --global user.name "searxng-bot" | ||||
| 
 | ||||
|       - name: Merge and push translation updates | ||||
|         run: make V=1 weblate.translations.commit | ||||
| 
 | ||||
|       - name: Create PR | ||||
|         id: cpr | ||||
|         uses: peter-evans/create-pull-request@v7 | ||||
|         with: | ||||
|           author: "${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>" | ||||
|           committer: "searxng-bot <searxng-bot@users.noreply.github.com>" | ||||
|           title: "[l10n] update translations from Weblate" | ||||
|           commit-message: "[l10n] update translations from Weblate" | ||||
|           branch: "translations_update" | ||||
|           delete-branch: "true" | ||||
|           draft: "false" | ||||
|           signoff: "false" | ||||
|           labels: | | ||||
|             translation | ||||
| 
 | ||||
|       - name: Display information | ||||
|         run: | | ||||
|           echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}" | ||||
|           echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}" | ||||
							
								
								
									
										59
									
								
								.github/workflows/translations-update.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										59
									
								
								.github/workflows/translations-update.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,59 +0,0 @@ | ||||
| name: "Update translations" | ||||
| on:  # yamllint disable-line rule:truthy | ||||
|   schedule: | ||||
|     - cron: "05 07 * * 5" | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| jobs: | ||||
|   babel: | ||||
|     name: "create PR for additions from weblate" | ||||
|     runs-on: ubuntu-24.04 | ||||
|     if: ${{ github.repository_owner == 'searxng' && github.ref == 'refs/heads/master' }} | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         with: | ||||
|           fetch-depth: '0' | ||||
|           token: ${{ secrets.WEBLATE_GITHUB_TOKEN }} | ||||
|       - name: Set up Python | ||||
|         uses: actions/setup-python@v5 | ||||
|         with: | ||||
|           python-version: '3.12' | ||||
|           architecture: 'x64' | ||||
|       - name: Cache Python dependencies | ||||
|         id: cache-python | ||||
|         uses: actions/cache@v4 | ||||
|         with: | ||||
|           path: | | ||||
|             ./local | ||||
|             ./.nvm | ||||
|             ./node_modules | ||||
|           key: python-ubuntu-24.04-3.12-${{ hashFiles('requirements*.txt', 'setup.py','.nvmrc', 'package.json') }} | ||||
|       - name: weblate & git setup | ||||
|         env: | ||||
|           WEBLATE_CONFIG: ${{ secrets.WEBLATE_CONFIG }} | ||||
|         run: | | ||||
|           mkdir -p ~/.config | ||||
|           echo "${WEBLATE_CONFIG}" > ~/.config/weblate | ||||
|           git config --global user.email "searxng-bot@users.noreply.github.com" | ||||
|           git config --global user.name "searxng-bot" | ||||
|       - name: Merge and push transation updates | ||||
|         run: | | ||||
|           make V=1 weblate.translations.commit | ||||
|       - name: Create Pull Request | ||||
|         id: cpr | ||||
|         uses: peter-evans/create-pull-request@v3 | ||||
|         with: | ||||
|           token: ${{ secrets.WEBLATE_GITHUB_TOKEN }} | ||||
|           commit-message: '[l10n] update translations from Weblate' | ||||
|           committer: searxng-bot <searxng-bot@users.noreply.github.com> | ||||
|           author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> | ||||
|           signoff: false | ||||
|           branch: translations_update | ||||
|           delete-branch: true | ||||
|           draft: false | ||||
|           title: '[l10n] update translations from Weblate' | ||||
|           body: | | ||||
|             update translations from Weblate | ||||
|           labels: | | ||||
|             translation | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Ivan Gabaldon
						Ivan Gabaldon