mirror of
https://github.com/searxng/searxng.git
synced 2026-07-17 21:41:24 +00:00
* [mod] ci: rework workflows mod: ubuntu 26.04 runners mod: remove podman-static mod: longer container cache mod: remove useless pr information mod: sort steps fix: use commit ref on workflow_run children fix: missing container workflow_run check fix: nodejs cache * [fix] ci: apply suggestions https://github.com/searxng/searxng/pull/6401#discussion_r3566147961 https://github.com/searxng/searxng/pull/6401#discussion_r3566147970
171 lines
4.8 KiB
YAML
171 lines
4.8 KiB
YAML
---
|
|
name: Container
|
|
|
|
# yamllint disable-line rule:truthy
|
|
on:
|
|
workflow_dispatch:
|
|
workflow_run:
|
|
workflows:
|
|
- Integration
|
|
types:
|
|
- completed
|
|
branches:
|
|
- master
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}
|
|
cancel-in-progress: false
|
|
|
|
permissions:
|
|
contents: read
|
|
packages: read
|
|
|
|
env:
|
|
PYTHON_VERSION: "3.14"
|
|
|
|
jobs:
|
|
build:
|
|
if: |
|
|
github.event_name == 'workflow_dispatch'
|
|
|| (github.repository_owner == 'searxng' && github.event.workflow_run.conclusion == 'success')
|
|
name: Build (${{ matrix.arch }})
|
|
runs-on: ${{ matrix.runner }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- runner: ubuntu-26.04
|
|
arch: amd64
|
|
- runner: ubuntu-26.04-arm
|
|
arch: arm64
|
|
- runner: ubuntu-26.04-arm
|
|
arch: armv7
|
|
|
|
permissions:
|
|
packages: write
|
|
|
|
outputs:
|
|
docker_tag: ${{ steps.build.outputs.docker_tag }}
|
|
git_url: ${{ steps.build.outputs.git_url }}
|
|
|
|
steps:
|
|
- name: Login to GHCR
|
|
uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0 # v4.4.0
|
|
with:
|
|
registry: "ghcr.io"
|
|
username: "${{ github.repository_owner }}"
|
|
password: "${{ secrets.GITHUB_TOKEN }}"
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
with:
|
|
python-version: "${{ env.PYTHON_VERSION }}"
|
|
|
|
- name: Setup QEMU
|
|
uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4.2.0
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
with:
|
|
ref: "${{ github.event.workflow_run.head_sha || github.sha }}"
|
|
persist-credentials: "false"
|
|
fetch-depth: "0"
|
|
|
|
- name: Setup cache Python
|
|
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
with:
|
|
key: "python-${{ env.PYTHON_VERSION }}-${{ runner.arch }}-${{ hashFiles('./requirements*.txt') }}"
|
|
restore-keys: |
|
|
python-${{ env.PYTHON_VERSION }}-${{ runner.arch }}-
|
|
path: "./local/"
|
|
|
|
- name: Setup cache container
|
|
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
with:
|
|
key: "container-${{ matrix.arch }}-${{ hashFiles('./requirements*.txt') }}"
|
|
restore-keys: |
|
|
container-${{ matrix.arch }}-
|
|
path: "/var/tmp/buildah-cache-*/*"
|
|
|
|
- name: Build
|
|
id: build
|
|
env:
|
|
OVERRIDE_ARCH: "${{ matrix.arch }}"
|
|
run: make container.build
|
|
|
|
test:
|
|
name: Test (${{ matrix.arch }})
|
|
runs-on: ${{ matrix.runner }}
|
|
needs: build
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- runner: ubuntu-26.04
|
|
arch: amd64
|
|
- runner: ubuntu-26.04-arm
|
|
arch: arm64
|
|
- runner: ubuntu-26.04-arm
|
|
arch: armv7
|
|
|
|
steps:
|
|
- name: Login to GHCR
|
|
uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0 # v4.4.0
|
|
with:
|
|
registry: "ghcr.io"
|
|
username: "${{ github.repository_owner }}"
|
|
password: "${{ secrets.GITHUB_TOKEN }}"
|
|
|
|
- name: Setup QEMU
|
|
uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4.2.0
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
with:
|
|
ref: "${{ github.event.workflow_run.head_sha || github.sha }}"
|
|
persist-credentials: "false"
|
|
|
|
- name: Test
|
|
env:
|
|
OVERRIDE_ARCH: "${{ matrix.arch }}"
|
|
GIT_URL: "${{ needs.build.outputs.git_url }}"
|
|
run: make container.test
|
|
|
|
release:
|
|
if: github.repository_owner == 'searxng' && github.ref_name == 'master'
|
|
name: Release
|
|
runs-on: ubuntu-26.04-arm
|
|
needs:
|
|
- build
|
|
- test
|
|
|
|
permissions:
|
|
packages: write
|
|
|
|
steps:
|
|
- name: Login to Docker Hub
|
|
uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0 # v4.4.0
|
|
with:
|
|
registry: "docker.io"
|
|
username: "${{ secrets.DOCKER_USER }}"
|
|
password: "${{ secrets.DOCKER_TOKEN }}"
|
|
|
|
- name: Login to GHCR
|
|
uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0 # v4.4.0
|
|
with:
|
|
registry: "ghcr.io"
|
|
username: "${{ github.repository_owner }}"
|
|
password: "${{ secrets.GITHUB_TOKEN }}"
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
with:
|
|
ref: "${{ github.event.workflow_run.head_sha || github.sha }}"
|
|
persist-credentials: "false"
|
|
|
|
- name: Release
|
|
env:
|
|
GIT_URL: "${{ needs.build.outputs.git_url }}"
|
|
DOCKER_TAG: "${{ needs.build.outputs.docker_tag }}"
|
|
run: make container.push
|