Skip to content

Commit 61c44ad

Browse files
committed
split tests to 3 matrices
1 parent c0abe6a commit 61c44ad

File tree

1 file changed

+56
-14
lines changed

1 file changed

+56
-14
lines changed

project_name/.github/workflows/ci.yml.jinja

Lines changed: 56 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,14 @@ jobs:
3131
with:
3232
args: "format --check"
3333
{%- endif %}
34+
3435
ruff-lint:
3536
if: {% raw %}${{ always() }}{% endraw %}
3637
runs-on: ubuntu-latest
3738
steps:
3839
- uses: actions/checkout@v4
3940
- uses: astral-sh/ruff-action@v3
41+
4042
pre-commit:
4143
if: {% raw %}${{ always() }}{% endraw %}
4244
env:
@@ -47,7 +49,8 @@ jobs:
4749
- uses: actions/setup-python@v5
4850
- uses: astral-sh/setup-uv@v5
4951
- uses: pre-commit/[email protected]
50-
test:
52+
53+
test-python:
5154
if: {% raw %}${{ always() }}{% endraw %}
5255
runs-on: ubuntu-latest
5356
strategy:
@@ -71,27 +74,38 @@ jobs:
7174
{%- if python_minor <= 13 %}
7275
- "3.13"
7376
{%- endif %}
74-
allow-failure: [false]
7577
include:
7678
# map resolution to resolution-args
7779
- resolution: "highest"
7880
resolution-args: "--upgrade --resolution highest"
7981
- resolution: "lowest"
8082
resolution-args: "--upgrade --resolution lowest-direct"
81-
# add current versions from lockfile
82-
- resolution: "no-upgrade"
83-
resolution-args: "--no-upgrade"
84-
python-version: "3.{{ python_minor }}"
85-
# add prerelease versions
86-
- resolution: "prerelease"
87-
resolution-args: "--upgrade --resolution highest --prerelease allow"
88-
python-version: "3.13"
89-
allow-failure: true
83+
name: {% raw %}test-py${{ matrix.python-version }}-${{ matrix.resolution }}{% endraw %}
84+
steps:
85+
- uses: actions/checkout@v4
86+
- uses: astral-sh/setup-uv@v5
87+
with:
88+
python-version: {% raw %}${{ matrix.python-version }}{% endraw %}
89+
- name: Install the project
90+
run: uv sync --all-extras --group test {% raw %}${{ matrix.resolution-args }}{% endraw %}
91+
- name: Run tests
92+
run: uv run pytest
93+
94+
test-prerelease:
95+
if: {% raw %}${{ always() }}{% endraw %}
96+
runs-on: ubuntu-latest
97+
strategy:
98+
matrix:
99+
resolution:
100+
- "prerelease"
101+
python-version:
102+
- "3.13"
103+
- "3.14"
104+
include:
105+
# map resolution to resolution-args
90106
- resolution: "prerelease"
91107
resolution-args: "--upgrade --resolution highest --prerelease allow"
92-
python-version: "3.14"
93-
allow-failure: true
94-
continue-on-error: {% raw %}${{ matrix.allow-failure }}{% endraw %}
108+
continue-on-error: true
95109
name: {% raw %}test-py${{ matrix.python-version }}-${{ matrix.resolution }}{% endraw %}
96110
steps:
97111
- uses: actions/checkout@v4
@@ -102,3 +116,31 @@ jobs:
102116
run: uv sync --all-extras --group test {% raw %}${{ matrix.resolution-args }}{% endraw %}
103117
- name: Run tests
104118
run: uv run pytest
119+
120+
test-system:
121+
if: {% raw %}${{ always() }}{% endraw %}
122+
runs-on: {% raw %}${{ matrix.os }}{% endraw %}
123+
strategy:
124+
matrix:
125+
os:
126+
- ubuntu-latest
127+
- macos-latest
128+
- windows-latest
129+
resolution:
130+
- "no-upgrade"
131+
python-version:
132+
- "3.{{ python_minor }}"
133+
include:
134+
# map resolution to resolution-args
135+
- resolution: "no-upgrade"
136+
resolution-args: "--no-upgrade"
137+
name: {% raw %}test-py${{ matrix.python-version }}-${{ matrix.resolution }}-${{ matrix.os }}{% endraw %}
138+
steps:
139+
- uses: actions/checkout@v4
140+
- uses: astral-sh/setup-uv@v5
141+
with:
142+
python-version: {% raw %}${{ matrix.python-version }}{% endraw %}
143+
- name: Install the project
144+
run: uv sync --all-extras --group test {% raw %}${{ matrix.resolution-args }}{% endraw %}
145+
- name: Run tests
146+
run: uv run pytest

0 commit comments

Comments
 (0)