mirror of
https://github.com/searxng/searxng.git
synced 2026-03-27 04:00:18 -04:00
The end-of-life (EOL) of a Python release is reached after 5 years, with the last three years dedicated to security fixes. [1] Unfortunately, this doesn't apply to common libraries (dependencies): bug fixes are often only included in major releases, and minor releases with corresponding security fixes are rarely offered. To make matters worse, these dependencies often prematurely discontinue their support for older Python releases (because, for example, they want/need to use new Python features). If we want to offer secure software, we are faced with the dilemma of either supporting old Python releases and accepting that there are security bugs in the dependencies, or ending support for older Python versions before the actual EOL of the Python release. [1] https://devguide.python.org/versions/ Closes: https://github.com/searxng/searxng/issues/5869 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
101 lines
2.6 KiB
YAML
101 lines
2.6 KiB
YAML
---
|
|
name: Integration
|
|
|
|
# yamllint disable-line rule:truthy
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref_name }}
|
|
cancel-in-progress: false
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
env:
|
|
PYTHON_VERSION: "3.14"
|
|
|
|
jobs:
|
|
test:
|
|
name: Python ${{ matrix.python-version }}
|
|
runs-on: ubuntu-24.04
|
|
strategy:
|
|
matrix:
|
|
python-version:
|
|
- "3.11"
|
|
- "3.12"
|
|
- "3.13"
|
|
- "3.14"
|
|
|
|
steps:
|
|
- name: Setup Python
|
|
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
with:
|
|
python-version: "${{ matrix.python-version }}"
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
with:
|
|
persist-credentials: "false"
|
|
|
|
- name: Setup cache Python
|
|
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
|
|
with:
|
|
key: "python-${{ matrix.python-version }}-${{ runner.arch }}-${{ hashFiles('./requirements*.txt') }}"
|
|
restore-keys: |
|
|
python-${{ matrix.python-version }}-${{ runner.arch }}-
|
|
path: "./local/"
|
|
|
|
- name: Setup venv
|
|
run: make V=1 install
|
|
|
|
- name: Run tests
|
|
run: make V=1 ci.test
|
|
|
|
theme:
|
|
name: Theme
|
|
runs-on: ubuntu-24.04-arm
|
|
steps:
|
|
- name: Setup Python
|
|
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
with:
|
|
python-version: "${{ env.PYTHON_VERSION }}"
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
with:
|
|
persist-credentials: "false"
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
|
with:
|
|
node-version-file: "./.nvmrc"
|
|
|
|
- name: Setup cache Node.js
|
|
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
|
|
with:
|
|
key: "nodejs-${{ runner.arch }}-${{ hashFiles('./.nvmrc', './package.json') }}"
|
|
path: "./client/simple/node_modules/"
|
|
|
|
- name: Setup cache Python
|
|
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
|
|
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: Lint
|
|
run: make themes.lint
|
|
|
|
- name: Build
|
|
run: make themes.all
|