@@ -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