summaryrefslogtreecommitdiff
path: root/.github/workflows/l10n.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/l10n.yml')
-rw-r--r--.github/workflows/l10n.yml136
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 }}"