4343 uses : actions/checkout@v3
4444 - name : Setup Python Environment
4545 # see https://github.com/actions/setup-python
46- uses : actions/setup-python@v3
46+ uses : actions/setup-python@v4
4747 with :
4848 python-version : ${{ env.PYTHON_VERISON_DEFAULT }}
4949 architecture : ' x64'
@@ -55,19 +55,29 @@ jobs:
5555 - name : Install dependencies
5656 run : poetry install
5757 - name : Run tox
58- run : poetry run tox -e flake8
58+ run : poetry run tox -e flake8 -s false
5959
6060 static-code-analysis :
61- name : Static Coding Analysis
61+ name : Static Coding Analysis (py${{ matrix.python-version}} ${{ matrix.toxenv-factor }})
6262 runs-on : ubuntu-latest
6363 timeout-minutes : 10
64+ strategy :
65+ fail-fast : false
66+ matrix :
67+ include :
68+ - # test with the locked dependencies
69+ python-version : ' 3.10'
70+ toxenv-factor : ' locked'
71+ - # test with the lowest dependencies
72+ python-version : ' 3.6'
73+ toxenv-factor : ' lowest'
6474 steps :
6575 - name : Checkout
6676 # see https://github.com/actions/checkout
6777 uses : actions/checkout@v3
6878 - name : Setup Python Environment
6979 # see https://github.com/actions/setup-python
70- uses : actions/setup-python@v3
80+ uses : actions/setup-python@v4
7181 with :
7282 python-version : ${{ env.PYTHON_VERISON_DEFAULT }}
7383 architecture : ' x64'
@@ -79,10 +89,10 @@ jobs:
7989 - name : Install dependencies
8090 run : poetry install
8191 - name : Run tox
82- run : poetry run tox -e mypy
92+ run : poetry run tox -e mypy-${{ matrix.toxenv-factor }} -s false
8393
8494 build-and-test :
85- name : Tests for Python ${{ matrix.python-version }} on ${{ matrix.os }}
95+ name : Test (${{ matrix.os }} py ${{ matrix.python-version }} ${{ matrix.toxenv-factor }})
8696 runs-on : ${{ matrix.os }}
8797 timeout-minutes : 10
8898 env :
@@ -97,6 +107,12 @@ jobs:
97107 - " 3.8"
98108 - " 3.7"
99109 - " 3.6" # lowest supported
110+ toxenv-factor : ['locked']
111+ include :
112+ - # test with the lowest dependencies
113+ os : ' ubuntu-latest'
114+ python-version : ' 3.6'
115+ toxenv-factor : ' lowest'
100116 steps :
101117 - name : Checkout
102118 # see https://github.com/actions/checkout
@@ -105,7 +121,7 @@ jobs:
105121 run : mkdir ${{ env.REPORTS_DIR }}
106122 - name : Setup Python Environment
107123 # see https://github.com/actions/setup-python
108- uses : actions/setup-python@v3
124+ uses : actions/setup-python@v4
109125 with :
110126 python-version : ${{ matrix.python-version }}
111127 architecture : ' x64'
@@ -119,11 +135,11 @@ jobs:
119135 - name : Ensure build successful
120136 run : poetry build
121137 - name : Run tox
122- run : poetry run tox -e py -s false
138+ run : poetry run tox -e py-${{ matrix.toxenv-factor }} -s false
123139 - name : Generate coverage reports
124140 run : >
125141 poetry run coverage report &&
126- poetry run coverage xml -o ${{ env.REPORTS_DIR }}/coverage-${{ matrix.os }}-${{ matrix.python-version }}.xml &&
142+ poetry run coverage xml -o ${{ env.REPORTS_DIR }}/coverage-${{ matrix.os }}-${{ matrix.python-version }}-${{ matrix.toxenv-factor }} .xml &&
127143 poetry run coverage html -d ${{ env.REPORTS_DIR }}
128144 - name : Artifact reports
129145 if : ${{ ! cancelled() }}
0 commit comments