Skip to content

Commit

Permalink
ci: Split functional and unit testing
Browse files Browse the repository at this point in the history
This separation eases unit testing on more advanced Python versions by
generating different environments for functional and unit testing. Which was
impossible to do before due to lack of wxPython wheels.
  • Loading branch information
rockstorm101 committed Jun 28, 2024
1 parent ef8b846 commit d66a170
Showing 1 changed file with 26 additions and 5 deletions.
31 changes: 26 additions & 5 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,21 @@ on:
pull_request:

jobs:
test:
functional_test:
name: Functional testing with Python ${{ matrix.python-version }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11"]
include:
# Set unit testing to false on all combinations
- unit-test: false
- python-version: "3.8"
wxpython-wheel: "ubuntu-22.04/wxPython-4.2.1-cp38-cp38-linux_x86_64.whl"
- python-version: "3.9"
wxpython-wheel: "ubuntu-22.04/wxPython-4.2.1-cp39-cp39-linux_x86_64.whl"
- python-version: "3.10"
wxpython-wheel: "ubuntu-22.04/wxPython-4.2.1-cp310-cp310-linux_x86_64.whl"
- python-version: "3.11"
unit-test: true
wxpython-wheel: "ubuntu-22.04/wxPython-4.2.1-cp311-cp311-linux_x86_64.whl"

steps:
Expand All @@ -46,10 +44,33 @@ jobs:
python -m pip install -r requirements.txt
- name: Perform functional tests
# Simple test that but might be enough to detect regressions
# particularly those due to wxPython versions
run: |
./pronterface.py -h
unit_test:
name: Unit testing with Python ${{ matrix.python-version }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.11", "3.12", "3.13-dev"]
# Unit testing uses functions not available on Python < 3.11

steps:
- uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install Printrun dependencies for unit testing
run: |
python -m pip install --upgrade pip
python -m pip install pyserial
- name: Perform unit tests
if: ${{ matrix.unit-test }}
run: |
python -m unittest discover tests

0 comments on commit d66a170

Please sign in to comment.