diff --git a/.github/workflows/python-tests.yml b/.github/workflows/python-tests.yml new file mode 100644 index 0000000..026b36f --- /dev/null +++ b/.github/workflows/python-tests.yml @@ -0,0 +1,50 @@ +name: Run unit tests + +on: + pull_request: + push: + branches: + - master + workflow_dispatch: + schedule: + # Run every Sunday at 03:53 UTC + - cron: 13 3 * * 0 + +jobs: + tests: + name: ${{ matrix.os }}, ${{ matrix.tox_env }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + include: + - os: ubuntu-latest + python-version: '3.7' + tox_env: 'py37' + - os: ubuntu-latest + python-version: '3.8' + tox_env: 'py38' + - os: ubuntu-latest + python-version: '3.9' + tox_env: 'py39' + - os: ubuntu-latest + python-version: '3.10' + tox_env: 'py310' + + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install Tox + run: python -m pip install tox coverage + - name: Run Tox + run: tox -e ${{ matrix.tox_env }} + - name: Convert coverage + run: python -m coverage xml + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v1 + with: + fail_ci_if_error: true diff --git a/tox.ini b/tox.ini index 3ea4cb0..15d502f 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,7 @@ [tox] envlist = {py37,py38,py39,py310}{,-mpdafdev},docs +skip_missing_interpreters = true +isolated_build = true [testenv] whitelist_externals = which