Skip to content

Commit b96029b

Browse files
committed
Run integration tests in paralell
1 parent aff93cc commit b96029b

File tree

1 file changed

+57
-18
lines changed

1 file changed

+57
-18
lines changed

.github/workflows/test.yml

Lines changed: 57 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,65 @@ jobs:
2929
fetch-depth: 0
3030
fetch-tags: true
3131

32+
- uses: actions/setup-python@v5
33+
with:
34+
python-version: ${{ matrix.python-version }}
35+
36+
- name: Install uv
37+
uses: astral-sh/setup-uv@v5
38+
with:
39+
enable-cache: true
40+
cache-dependency-glob: "uv.lock"
41+
42+
- name: Install library
43+
run: uv sync --all-extras --dev
44+
45+
- name: Run Ruff
46+
run: uv run ruff check .
47+
48+
- name: Type check
49+
run: uv run mypy src
50+
51+
- name: Format
52+
run: >
53+
uv run ruff format --diff
54+
src
55+
tests
56+
57+
- name: Unit tests
58+
run: uv run pytest tests/unit
59+
60+
integration:
61+
name: Integration tests
62+
runs-on: ubuntu-latest
63+
needs: test
64+
strategy:
65+
fail-fast: false
66+
matrix:
67+
python-version:
68+
- "3.9"
69+
- "3.10"
70+
- "3.11"
71+
- "3.12"
72+
ros_version:
73+
- "7.18.2"
74+
- "6.33.3"
75+
marks:
76+
- "not asyncio"
77+
- "asyncio"
78+
steps:
79+
- name: Checkout
80+
uses: actions/checkout@v4
81+
with:
82+
lfs: false
83+
fetch-depth: 0
84+
fetch-tags: true
85+
3286
- name: Create docker image
3387
run: docker create --name images lukaszkostka/librouteros_images:latest /dev/null
3488

3589
- name: Move vm images
36-
run: docker cp images:/opt/. $GITHUB_WORKSPACE/images/
90+
run: docker cp images:/opt/routeros_${{ matrix.ros_version }}.qcow2 $GITHUB_WORKSPACE/images/
3791

3892
- name: Remove docker image
3993
run: docker rm images
@@ -60,21 +114,6 @@ jobs:
60114
- name: Install library
61115
run: uv sync --all-extras --dev
62116

63-
- name: Run Ruff
64-
run: uv run ruff check .
65-
66-
- name: Type check
67-
run: uv run mypy src
68-
69-
- name: Format
70-
run: >
71-
uv run ruff format --diff
72-
src
73-
tests
74-
75-
- name: Unit tests
76-
run: uv run pytest tests/unit
77-
78117
- name: Integration tests
79-
timeout-minutes: 20
80-
run: uv run pytest tests/integration
118+
timeout-minutes: 5
119+
run: uv run pytest tests/integration -k ${{ matrix.ros_version }} -m "${{ matrix.marks }}"

0 commit comments

Comments
 (0)