[mod] new l10n.yml workflow (#4734)
l10n.yml will run after integration.yml finishes successfully (will defer anything depending on integration.yml until heavy loads like container building are moved to separate workflows) and in master branch. * After every integration.yml workflow completes successfully, only the `update` job runs. * Dispatch and Crontab triggers only the `pr` job. 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
							
								
									e982b9f732
								
							
						
					
					
						commit
						8e2e7774d7
					
				
							
								
								
									
										42
									
								
								.github/workflows/integration.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										42
									
								
								.github/workflows/integration.yml
									
									
									
									
										vendored
									
									
								
							@ -47,48 +47,6 @@ jobs:
 | 
				
			|||||||
      - name: Build themes
 | 
					      - name: Build themes
 | 
				
			||||||
        run: make themes.all
 | 
					        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:
 | 
					  dockers:
 | 
				
			||||||
    name: Docker
 | 
					    name: Docker
 | 
				
			||||||
    if: github.ref == 'refs/heads/master'
 | 
					    if: github.ref == 'refs/heads/master'
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										136
									
								
								.github/workflows/l10n.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										136
									
								
								.github/workflows/l10n.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,136 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					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
 | 
				
			||||||
 | 
					      # For action "peter-evans/create-pull-request"
 | 
				
			||||||
 | 
					      pull-requests: 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