Skip to content

Commit 78b5fc6

Browse files
committed
One integration workflow
1 parent 80aa54b commit 78b5fc6

10 files changed

+111
-226
lines changed

.github/workflows/integration-aiohttp.yml

Lines changed: 0 additions & 20 deletions
This file was deleted.

.github/workflows/integration-django.yml

Lines changed: 0 additions & 20 deletions
This file was deleted.

.github/workflows/integration-falcon.yml

Lines changed: 0 additions & 20 deletions
This file was deleted.

.github/workflows/integration-fastapi.yml

Lines changed: 0 additions & 20 deletions
This file was deleted.

.github/workflows/integration-flask.yml

Lines changed: 0 additions & 20 deletions
This file was deleted.

.github/workflows/integration-requests.yml

Lines changed: 0 additions & 20 deletions
This file was deleted.

.github/workflows/integration-reusable.yml

Lines changed: 0 additions & 66 deletions
This file was deleted.

.github/workflows/integration-starlette.yml

Lines changed: 0 additions & 20 deletions
This file was deleted.
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
name: CI / Integrations
2+
3+
on:
4+
push:
5+
pull_request:
6+
types: [opened, synchronize]
7+
8+
concurrency:
9+
group: ${{ github.workflow }}-${{ github.ref }}
10+
cancel-in-progress: true
11+
12+
permissions:
13+
contents: read
14+
id-token: write
15+
16+
jobs:
17+
integration:
18+
name: "Integration / ${{ matrix.target.label }} / py${{ matrix.python-version }}"
19+
runs-on: ubuntu-latest
20+
strategy:
21+
matrix:
22+
target:
23+
- integration: aiohttp
24+
spec: ">=3.8,<4.0"
25+
label: "aiohttp-3.x"
26+
- integration: aiohttp
27+
spec: ">=3.11,<4.0"
28+
label: "aiohttp-3.11+"
29+
- integration: django
30+
spec: ">=4.0,<5.0"
31+
label: "django-4.x"
32+
- integration: django
33+
spec: ">=5.0,<6.0"
34+
label: "django-5.x"
35+
- integration: falcon
36+
spec: ">=4.0,<5.0"
37+
label: "falcon-4.x"
38+
- integration: fastapi
39+
spec: ">=0.111,<0.120"
40+
label: "fastapi-0.11x"
41+
- integration: fastapi
42+
spec: ">=0.120,<0.129"
43+
label: "fastapi-0.12x"
44+
- integration: flask
45+
spec: ">=2.0,<3.0"
46+
label: "flask-2.x"
47+
- integration: flask
48+
spec: ">=3.0,<4.0"
49+
label: "flask-3.x"
50+
- integration: requests
51+
spec: ""
52+
label: "requests-default"
53+
- integration: starlette
54+
spec: ">=0.40.0,<0.50.0"
55+
label: "starlette-0.4x"
56+
- integration: starlette
57+
spec: ">=0.50.0,<0.60.0"
58+
label: "starlette-0.5x"
59+
- integration: werkzeug
60+
spec: ""
61+
label: "werkzeug-default"
62+
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
63+
fail-fast: false
64+
steps:
65+
- uses: actions/checkout@v6
66+
67+
- name: Set up Python ${{ matrix.python-version }}
68+
uses: actions/setup-python@v6
69+
with:
70+
python-version: ${{ matrix.python-version }}
71+
72+
- name: Get full Python version
73+
id: full-python-version
74+
run: python -c "import sys; print(f\"version={'-'.join(str(v) for v in sys.version_info)}\")" >> "$GITHUB_OUTPUT"
75+
76+
- name: Set up poetry
77+
uses: Gr1N/setup-poetry@v9
78+
with:
79+
poetry-version: "2.3.1"
80+
81+
- name: Configure poetry
82+
run: poetry config virtualenvs.in-project true
83+
84+
- name: Set up cache
85+
uses: actions/cache@v5
86+
id: cache
87+
with:
88+
path: .venv
89+
key: venv-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('**/poetry.lock') }}
90+
91+
- name: Ensure cache is healthy
92+
if: steps.cache.outputs.cache-hit == 'true'
93+
run: timeout 10s poetry run pip --version || rm -rf .venv
94+
95+
- name: Install dependencies
96+
run: poetry install --all-extras
97+
98+
- name: Install framework variant
99+
if: matrix.target.spec != ''
100+
run: poetry run pip install "${{ matrix.target.integration }}${{ matrix.target.spec }}"
101+
102+
- name: Test
103+
env:
104+
PYTEST_ADDOPTS: "--color=yes"
105+
run: poetry run pytest tests/integration/contrib/${{ matrix.target.integration }}
106+
107+
- name: Upload coverage
108+
uses: codecov/codecov-action@v5
109+
with:
110+
flags: integration,${{ matrix.target.integration }},${{ matrix.target.label }},py${{ matrix.python-version }}
111+
name: integration-${{ matrix.target.integration }}-${{ matrix.target.label }}-py${{ matrix.python-version }}

.github/workflows/integration-werkzeug.yml

Lines changed: 0 additions & 20 deletions
This file was deleted.

0 commit comments

Comments
 (0)