Skip to content

Commit 20db01e

Browse files
committed
One integration workflow
1 parent 80aa54b commit 20db01e

10 files changed

+117
-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: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
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.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: ">=3.2,<4.0"
31+
label: "django-3.x"
32+
- integration: django
33+
spec: ">=4.0,<5.0"
34+
label: "django-4.x"
35+
- integration: django
36+
spec: ">=5.0,<6.0"
37+
label: "django-5.x"
38+
- integration: falcon
39+
spec: ">=3.0,<4.0"
40+
label: "falcon-3.x"
41+
- integration: falcon
42+
spec: ">=4.0,<5.0"
43+
label: "falcon-4.x"
44+
- integration: fastapi
45+
spec: ">=0.111,<0.120"
46+
label: "fastapi-0.11x"
47+
- integration: fastapi
48+
spec: ">=0.120,<0.129"
49+
label: "fastapi-0.12x"
50+
- integration: flask
51+
spec: ">=2.0,<3.0"
52+
label: "flask-2.x"
53+
- integration: flask
54+
spec: ">=3.0,<4.0"
55+
label: "flask-3.x"
56+
- integration: requests
57+
spec: ""
58+
label: "requests-default"
59+
- integration: starlette
60+
spec: ">=0.26.1,<0.40.0"
61+
label: "starlette-0.2x-0.3x"
62+
- integration: starlette
63+
spec: ">=0.40.0,<0.50.0"
64+
label: "starlette-0.4x"
65+
- integration: werkzeug
66+
spec: ""
67+
label: "werkzeug-default"
68+
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
69+
fail-fast: false
70+
steps:
71+
- uses: actions/checkout@v6
72+
73+
- name: Set up Python ${{ matrix.python-version }}
74+
uses: actions/setup-python@v6
75+
with:
76+
python-version: ${{ matrix.python-version }}
77+
78+
- name: Get full Python version
79+
id: full-python-version
80+
run: python -c "import sys; print(f\"version={'-'.join(str(v) for v in sys.version_info)}\")" >> "$GITHUB_OUTPUT"
81+
82+
- name: Set up poetry
83+
uses: Gr1N/setup-poetry@v9
84+
with:
85+
poetry-version: "2.3.1"
86+
87+
- name: Configure poetry
88+
run: poetry config virtualenvs.in-project true
89+
90+
- name: Set up cache
91+
uses: actions/cache@v5
92+
id: cache
93+
with:
94+
path: .venv
95+
key: venv-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('**/poetry.lock') }}
96+
97+
- name: Ensure cache is healthy
98+
if: steps.cache.outputs.cache-hit == 'true'
99+
run: timeout 10s poetry run pip --version || rm -rf .venv
100+
101+
- name: Install dependencies
102+
run: poetry install --all-extras
103+
104+
- name: Install framework variant
105+
if: matrix.target.spec != ''
106+
run: poetry run pip install "${{ matrix.target.integration }}${{ matrix.target.spec }}"
107+
108+
- name: Test
109+
env:
110+
PYTEST_ADDOPTS: "--color=yes"
111+
run: poetry run pytest tests/integration/contrib/${{ matrix.target.integration }}
112+
113+
- name: Upload coverage
114+
uses: codecov/codecov-action@v5
115+
with:
116+
flags: integration,${{ matrix.target.integration }},${{ matrix.target.label }},py${{ matrix.python-version }}
117+
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)