diff options
| author | Ivan Gabaldon <igabaldon@inetol.net> | 2025-05-10 13:08:20 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-10 13:08:20 +0200 |
| commit | 8e2e7774d7aeb13eac29c4dc16d65a2051ca250d (patch) | |
| tree | 365a3fdb8cd3dfe5bc87d094e80f56037902ee33 /.github/workflows/l10n.yml | |
| parent | e982b9f73205dec9da2c5c1fc757bb40c605c899 (diff) | |
[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).
Diffstat (limited to '.github/workflows/l10n.yml')
| -rw-r--r-- | .github/workflows/l10n.yml | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/.github/workflows/l10n.yml b/.github/workflows/l10n.yml new file mode 100644 index 000000000..4220c5c65 --- /dev/null +++ b/.github/workflows/l10n.yml @@ -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 }}" |