1- name : Link Status
1+ name : Tests
22
33on : [push, pull_request]
44
55jobs :
66 pre-commit :
77 name : Pre-Commit Checks
88 runs-on : ubuntu-latest
9+
910 steps :
1011 - name : Checkout to master
1112 uses : actions/checkout@master
1213
1314 - name : Setup python
1415 uses : actions/setup-python@v1
1516 with :
16- python-version : ' 3.7 '
17+ python-version : ' 3.8 '
1718 architecture : ' x64'
1819
1920 - name : Pre-Commit Checks
2021 run : |
21- python -m pip install pre-commit
22- pre-commit run -a
22+ python -m pip install pip --upgrade
23+ pip install nox
24+ nox -s pre_commit
2325
2426 - name : Analysis (git diff)
2527 if : failure()
2628 run : git diff
2729
28- tests :
29- name : Test-${{ matrix.os }}-Py${{ matrix.python-version }}
30+ package :
31+ name : Build & Verify Package
3032 needs : pre-commit
31- runs-on : ${{ matrix.os }}
33+ runs-on : ubuntu-latest
34+
35+ steps :
36+ - name : Checkout to master
37+ uses : actions/checkout@master
38+
39+ - name : Setup python
40+ uses : actions/setup-python@v1
41+ with :
42+ python-version : ' 3.8'
43+ architecture : ' x64'
44+ - name : Build and check with twine
45+ run : |
46+ python -m pip install pip --upgrade
47+ pip install nox
48+ nox -s package
49+
50+ unit-tests :
51+ name : UnitTests-Python-${{ matrix.python-version }}
52+ needs : [ pre-commit, package ]
53+ runs-on : ubuntu-latest
3254 strategy :
3355 matrix :
34- os : [ubuntu-latest, windows-latest, macos-latest]
35- python-version : [ '3.6', '3.7' ]
56+ python-version : [ 'pypy3', '3.6', '3.7', '3.8' ]
3657 steps :
3758 - name : Checkout to master
3859 uses : actions/checkout@master
@@ -43,10 +64,39 @@ jobs:
4364 python-version : ${{ matrix.python-version }}
4465 architecture : x64
4566
46- - name : Setup Package and Install Devel Dependencies
67+ - name : Unit Tests
4768 run : |
48- python -m pip install -Ur dev-requirements.txt
49- python -m pip install .
69+ python -m pip install pip --upgrade
70+ pip install nox
71+ nox -s ci_tests
5072
51- - name : Unit Tests
52- run : py.test -v tests
73+ - name : Upload coverage to Codecov
74+ 75+ with :
76+ file : coverage.xml
77+ flags : unittests
78+ name : codecov-linkstatus-{{ matrix.python-version }}
79+ fail_ci_if_error : true
80+
81+ platform :
82+ name : Platform-${{ matrix.os }}
83+ needs : [ unit-tests]
84+ runs-on : ${{ matrix.os }}
85+ strategy :
86+ matrix :
87+ os : [ubuntu-latest, windows-latest, macos-latest]
88+ steps :
89+ - name : Checkout to master
90+ uses : actions/checkout@master
91+
92+ - name : Setup python
93+ uses : actions/setup-python@v1
94+ with :
95+ python-version : ' 3.8'
96+ architecture : ' x64'
97+
98+ - name : Development setup and smoke test on platform ${{ matrix.os }}
99+ run : |
100+ python -m pip install pip --upgrade
101+ pip install nox
102+ nox -s dev_setup
0 commit comments