Skip to content

Commit

Permalink
Add test_matrix workflow.
Browse files Browse the repository at this point in the history
  • Loading branch information
vengroff committed Feb 14, 2024
1 parent fb5d898 commit 9a9af20
Showing 1 changed file with 59 additions and 0 deletions.
59 changes: 59 additions & 0 deletions .github/workflows/test-matrix.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Run a matrix of tests across different platforms and python versions.
# This is run on each pull request so we get a complete picture of any
# platform-specific issues not caught earlier.
#
# See also:
# unit-test.yml: run on a single platform every time a branch is pushed
# coverage-report.yml: runs on merge to main to generate coverage reports

# Based on https://github.com/marketplace/actions/install-poetry-action#running-on-windows

name: test-matrix

on: pull_request

jobs:
test-matrix:
strategy:
matrix:
python-version: ["3.11", "3.12"]
os: [ "ubuntu-latest", "macos-latest", "windows-latest" ]
fail-fast: false
defaults:
run:
shell: bash
runs-on: ${{ matrix.os }}
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up python
id: setup-python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Poetry
uses: snok/install-poetry@v1
with:
virtualenvs-create: true
virtualenvs-in-project: true
- name: Load cached venv
id: cached-pip-wheels
uses: actions/cache@v4
with:
path: ~/.cache
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}
- name: Install dependencies
run: poetry install --no-interaction --no-root
- name: Install library
run: poetry install --no-interaction
- name: Run tests
run: |
source $VENV
pytest
- name: Archive test artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: test_artifacts-${{ matrix.os }}-${{ matrix.python-version }}
path: tests/_test_artifacts
retention-days: 7

0 comments on commit 9a9af20

Please sign in to comment.