
`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.
84 lines
2.2 KiB
YAML
84 lines
2.2 KiB
YAML
---
|
|
name: Update searx.data
|
|
|
|
# yamllint disable-line rule:truthy
|
|
on:
|
|
workflow_dispatch:
|
|
schedule:
|
|
- cron: "59 23 28 * *"
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}
|
|
cancel-in-progress: false
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
env:
|
|
PYTHON_VERSION: "3.13"
|
|
|
|
jobs:
|
|
data:
|
|
if: github.repository_owner == 'searxng'
|
|
name: ${{ matrix.fetch }}
|
|
runs-on: ubuntu-24.04-arm
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
fetch:
|
|
- update_ahmia_blacklist.py
|
|
- update_currencies.py
|
|
- update_external_bangs.py
|
|
- update_firefox_version.py
|
|
- update_engine_traits.py
|
|
- update_wikidata_units.py
|
|
- update_engine_descriptions.py
|
|
|
|
permissions:
|
|
contents: write
|
|
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:
|
|
persist-credentials: "false"
|
|
|
|
- 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: Fetch data
|
|
run: V=1 ./manage pyenv.cmd python "./searxng_extra/update/${{ matrix.fetch }}"
|
|
|
|
- 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: "[data] update searx.data - ${{ matrix.fetch }}"
|
|
commit-message: "[data] update searx.data - ${{ matrix.fetch }}"
|
|
branch: "update_data_${{ matrix.fetch }}"
|
|
delete-branch: "true"
|
|
draft: "false"
|
|
signoff: "false"
|
|
labels: |
|
|
data
|
|
|
|
- name: Display information
|
|
run: |
|
|
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
|
|
echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"
|