
`checker.yml` and `integration.yml` are the only workflows that are currently safe to be executed simultaneously, the others present a risk that the order of completion may not be expected. The ones that are chained from `integration.yml` can be called as many times as `integration.yml` workflows are running at that moment, the same with the trigger "workflow_dispatch". This can be fatal for workflows like `container.yml` that use a centralized cache to store and load the candidate images in a common tag called "searxng-<arch>". * For example, a `container.yml` workflow is executed after being chained from `integration.yml` (called "~1"), and seconds later it may be triggered again because another PR merged some breaking changes (called "~2"). While "~1" has already passed the test job successfully and is about to start the release job, "~2" finishes building the container and overwrites the references on the common tag. When "~1" in the release job loads the images using the common tag, it will load the container of "~2" instead of "~1" having skipped the whole test job process. The example is only set for the container workflow, but the other workflows might occur in a similar way.
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 }}
|
|
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 }}"
|