gunicorn/.github/workflows/freebsd.yml
Benoit Chesneau ea98400820
ci: Fix macOS tests and add FreeBSD support (#3442)
* ci: Remove failing macos-13 from test matrix

* ci: Add FreeBSD testing workflow

* ci: Document test matrix rationale

* ci: Update cross-platform-actions to v0.32.0 for FreeBSD 14.2 support

* ci: Use FreeBSD 14.1 (14.2 has SSH connectivity issues)

* ci: Switch to vmactions/freebsd-vm for FreeBSD testing

* ci: Fix FreeBSD package names (pip included in Python)

* ci: Simplify FreeBSD matrix and fix package names

* ci: Use specific Python version command on FreeBSD

* ci: Add sqlite3 package for FreeBSD

* tests: Increase signal integration test timeouts for CI

The signal integration tests were flaky in CI environments,
especially FreeBSD VMs, due to 10-second timeouts being too short.
Increased timeouts to 30 seconds to handle slower CI environments.
2026-01-22 14:00:02 +01:00

48 lines
1.2 KiB
YAML

name: FreeBSD
on:
push:
pull_request:
workflow_dispatch:
permissions:
contents: read
env:
FORCE_COLOR: 1
jobs:
test:
name: FreeBSD ${{ matrix.freebsd-version }} / Python ${{ matrix.python-version }}
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
include:
- freebsd-version: '14.2'
python-version: '3.12'
python-pkg: 'python312 py312-sqlite3'
- freebsd-version: '14.2'
python-version: '3.13'
python-pkg: 'python313 py313-sqlite3'
steps:
- uses: actions/checkout@v6
- name: Test on FreeBSD
uses: vmactions/freebsd-vm@v1
with:
release: ${{ matrix.freebsd-version }}
usesh: true
prepare: |
pkg install -y ${{ matrix.python-pkg }}
run: |
python${{ matrix.python-version }} -m venv venv
. venv/bin/activate
pip install --upgrade pip
pip install pytest pytest-cov coverage
pip install -e .
pytest --cov=gunicorn -v tests/ \
--ignore=tests/workers/test_ggevent.py \
--ignore=tests/workers/test_geventlet.py