77 build :
88 name : Build
99 runs-on :
10- - ubuntu-latest
10+ - ${{ matrix.os }}
11+ strategy :
12+ matrix :
13+ os : [ubuntu-latest, windows-latest]
14+ python-version : ["3.9", "3.14"] # oldest supported and latest tested
1115 steps :
1216 - name : Check out repo
1317 uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
@@ -17,28 +21,17 @@ jobs:
1721 uses : ni/python-actions/setup-python@9768589f3e50672173dad75a6fc181e4a85d33fa # v0.7.0
1822 id : setup-python
1923 with :
20- # The codegen scripts require Python 3.10 or later.
21- python-version : " 3.10"
24+ python-version : ${{ matrix.python-version }}
2225 - name : Set up Poetry
2326 uses : ni/python-actions/setup-poetry@9768589f3e50672173dad75a6fc181e4a85d33fa # v0.7.0
24- - name : Cache virtualenv (all extras)
25- uses : actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3 .0
27+ - name : Run linters and type checkers
28+ uses : ni/python- actions/analyze-project@9768589f3e50672173dad75a6fc181e4a85d33fa # v0.7 .0
2629 with :
27- path : .venv
28- key : nidaqmx-all-extras-and-examples-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('poetry.lock') }}
29- - name : Install dependencies
30- run : |
31- python -m pip install --upgrade pip
32- poetry install --all-extras --with examples
33- - name : Run linters
34- run : poetry run ni-python-styleguide lint
35- - name : Run mypy (Linux)
36- run : poetry run mypy
37- - name : Run mypy (Windows)
38- run : poetry run mypy --platform win32
30+ install-args : " --all-extras --with examples"
3931 - name : Run Bandit security checks
4032 run : poetry run bandit -c pyproject.toml -r generated/nidaqmx
4133 - name : Generate ni-daqmx files
34+ if : ${{ matrix.python-version == '3.9' }} # oldest supported
4235 run : |
4336 rm -fr generated/nidaqmx
4437 poetry run python src/codegen --dest generated/nidaqmx
0 commit comments