
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).
95 lines
2.6 KiB
YAML
95 lines
2.6 KiB
YAML
name: Integration
|
|
|
|
on: # yamllint disable-line rule:truthy
|
|
push:
|
|
branches: ["master"]
|
|
pull_request:
|
|
branches: ["master"]
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
python:
|
|
name: Python ${{ matrix.python-version }}
|
|
runs-on: ubuntu-24.04
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-24.04]
|
|
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- name: Install Ubuntu packages
|
|
run: |
|
|
sudo ./utils/searxng.sh install packages
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
architecture: 'x64'
|
|
- name: Run tests
|
|
run: make V=1 ci.test
|
|
|
|
themes:
|
|
name: Themes
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- name: Install Ubuntu packages
|
|
run: sudo ./utils/searxng.sh install buildhost
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.12'
|
|
architecture: 'x64'
|
|
- name: Build themes
|
|
run: make themes.all
|
|
|
|
dockers:
|
|
name: Docker
|
|
if: github.ref == 'refs/heads/master'
|
|
needs:
|
|
- python
|
|
- themes
|
|
env:
|
|
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- name: Checkout
|
|
if: env.DOCKERHUB_USERNAME != null
|
|
uses: actions/checkout@v4
|
|
with:
|
|
# make sure "make docker.push" can get the git history
|
|
fetch-depth: '0'
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.12'
|
|
architecture: 'x64'
|
|
- name: Cache Python dependencies
|
|
id: cache-python
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: |
|
|
./local
|
|
./.nvm
|
|
./node_modules
|
|
key: python-ubuntu-20.04-3.12-${{ hashFiles('requirements*.txt', 'setup.py','.nvmrc', 'package.json') }}
|
|
- name: Set up QEMU
|
|
if: env.DOCKERHUB_USERNAME != null
|
|
uses: docker/setup-qemu-action@v1
|
|
- name: Set up Docker Buildx
|
|
if: env.DOCKERHUB_USERNAME != null
|
|
uses: docker/setup-buildx-action@v1
|
|
- name: Login to DockerHub
|
|
if: env.DOCKERHUB_USERNAME != null
|
|
uses: docker/login-action@v1
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
- name: Build and push
|
|
if: env.DOCKERHUB_USERNAME != null
|
|
run: make -e GIT_URL=$(git remote get-url origin) docker.buildx
|