
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).
137 lines
3.8 KiB
YAML
137 lines
3.8 KiB
YAML
---
|
|
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 }}"
|