gunicorn/.github/workflows/docker-integration.yml
Benoit Chesneau ecc471f3b4 tests: Add Docker integration tests for uWSGI protocol with nginx
Add comprehensive integration tests verifying gunicorn's uWSGI binary
protocol works correctly with nginx's uwsgi_pass directive.

Test categories:
- Basic GET/POST requests with query strings and large bodies
- Header preservation (custom headers, Host, Content-Type)
- HTTP keep-alive connections
- Error responses (400-503 status codes)
- WSGI environ variables
- Large response streaming (1MB)
- Concurrent request handling
- Edge cases (binary data, unicode, long headers)

Architecture: pytest -> nginx:8080 -> uwsgi_pass -> gunicorn:8000

Also adds GitHub Actions workflow that runs on changes to uwsgi module
or docker test files.
2026-01-22 19:06:30 +01:00

46 lines
985 B
YAML

name: Docker Integration Tests
on:
push:
branches: [master]
paths:
- 'gunicorn/uwsgi/**'
- 'tests/docker/uwsgi/**'
- '.github/workflows/docker-integration.yml'
pull_request:
paths:
- 'gunicorn/uwsgi/**'
- 'tests/docker/uwsgi/**'
- '.github/workflows/docker-integration.yml'
permissions:
contents: read
env:
FORCE_COLOR: 1
jobs:
uwsgi-nginx:
name: uWSGI Protocol with nginx
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.12"
cache: pip
cache-dependency-path: requirements_test.txt
- name: Install test dependencies
run: |
python -m pip install --upgrade pip
python -m pip install pytest requests
- name: Run uWSGI integration tests
run: |
pytest tests/docker/uwsgi/ -v --tb=short