1717
1818
1919jobs :
20+ linters :
21+ name : Linters
22+ runs-on : ubuntu-latest
23+ timeout-minutes : 10
24+ strategy :
25+ fail-fast : false
26+ steps :
27+ - name : Checkout repository
28+ uses : actions/checkout@v3
29+
30+ - name : Set up python
31+ uses : actions/setup-python@v4
32+ with :
33+ python-version : 3.8
34+
35+ - name : venv restore
36+ id : cache-venv
37+ uses : syphar/restore-virtualenv@v1
38+ with :
39+ requirement_files : requirements.txt
40+
41+ - name : venv create
42+ if : steps.cache-venv.outputs.cache-hit != 'true'
43+ run : pip install -e . -r requirements.txt
44+
45+ - name : codespell
46+ run : codespell
47+
48+ - name : pylint
49+ run : pylint --recursive=y examples pymodbus test
50+
51+ - name : precommit (black, bandit, and ruff)
52+ run : pre-commit run --all-files
53+
54+ - name : docs
55+ run : make -C doc/ html
56+
57+ - name : mypy
58+ run : mypy pymodbus
59+
60+
2061 integreation_test :
21- name : ${{ matrix.task.name }} - ${{ matrix.os.on }} - ${{ matrix.python.version }}
62+ name : pytest - ${{ matrix.os.on }} - ${{ matrix.python.version }}
2263 runs-on : ${{ matrix.os.on }}
64+ needs : linters
2365 timeout-minutes : 10
2466 strategy :
2567 fail-fast : false
2668 matrix :
27- task :
28- - name : pylint
29- cmd : pylint --recursive=y examples pymodbus test
30- type : lint
31- - name : codespell
32- cmd : codespell
33- type : lint
34- - name : precommit (black, bandit, and ruff)
35- cmd : pre-commit run --all-files
36- type : lint
37- - name : docs
38- cmd : make -C doc/ html
39- type : lint
40- - name : mypy
41- cmd : mypy pymodbus
42- type : lint
43- - name : pytest
44- cmd : pytest --cov=pymodbus --cov=test --cov-report=term-missing --cov-report=xml -v --full-trace --timeout=20
45- type : test
4669 os :
47- - name : Linux
48- on : ubuntu-latest
49- lint : ' yes'
50- - name : Macos
51- on : macos-latest
52- lint : ' no'
53- - name : Windows
54- on : windows-latest
55- lint : ' no'
70+ - on : ubuntu-latest
71+ - on : macos-latest
72+ - on : windows-latest
5673 python :
5774 - version : ' 3.8'
58- lint : ' yes'
5975 - version : ' 3.9'
60- lint : ' no'
6176 - version : ' 3.10'
62- lint : ' no'
6377 - version : ' 3.11'
64- lint : ' no'
6578 - version : pypy-3.8
66- lint : ' no'
6779 exclude :
68- - task :
69- type : lint
70- os :
71- lint : ' no'
72- - task :
73- type : lint
74- python :
75- lint : ' no'
7680 - os :
77- name : Macos
81+ on : macos-latest
7882 python :
7983 version : pypy-3.8
8084 - os :
81- name : Windows
85+ on : windows-latest
8286 python :
8387 version : pypy-3.8
8488 steps :
@@ -100,8 +104,8 @@ jobs:
100104 if : steps.cache-venv.outputs.cache-hit != 'true'
101105 run : pip install -e . -r requirements.txt
102106
103- - name : test/lint
104- run : ${{ matrix.task.cmd }}
107+ - name : pytest
108+ run : pytest --cov=pymodbus --cov=test --cov-report=term-missing --cov-report=xml -v --full-trace --timeout=20
105109
106110 ci_complete :
107111 name : ci_complete
@@ -110,5 +114,5 @@ jobs:
110114 - integreation_test
111115 timeout-minutes : 1
112116 steps :
113- - name : Check out code from GitHub
114- 117+ - name : Dummy
118+ run : ls
0 commit comments