gunicorn/.github/workflows/freebsd.yml
Benoit Chesneau 201df19a80 chore: remove eventlet worker; add h2 and uvloop to test deps
Eventlet was deprecated for 26.0 and is now removed:
- Delete gunicorn/workers/geventlet.py and its registry entry
- Drop eventlet from config help text, HTTP/2 unsupported-worker
  messages, and the dirty client docstring
- Drop the eventlet optional-dependency, the eventlet entry in the
  testing extra, and the eventlet-only filterwarnings ignore
- Drop the EventletWorkerAlpn test class
- Drop the freebsd CI ignore for the (now non-existent) test_geventlet.py
- Drop eventlet from the issue-triage discussion template
- Drop eventlet from README, install/design/http2/settings/news docs;
  rewrite the news.md entry from 'deprecated' to 'removed in this release'

Add h2 and uvloop to requirements_test.txt so a plain
'pip install -r requirements_test.txt' run reaches feature parity with
'pip install .[testing]' for those two deps. The container suite
previously skipped 87 HTTP/2 tests for missing h2 and 1 for uvloop;
the in-process suite skips drop from 67 to 40.
2026-05-05 00:36:46 +02:00

47 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 pytest-asyncio coverage
pip install -e .
pytest --cov=gunicorn -v tests/ \
--ignore=tests/workers/test_ggevent.py