Skip to content

tests: install dependencies from poetry.lock instead of duplicating in tox.ini #882

tests: install dependencies from poetry.lock instead of duplicating in tox.ini

tests: install dependencies from poetry.lock instead of duplicating in tox.ini #882

Workflow file for this run

name: test
on:
push:
branches:
- main
pull_request:
jobs:
run:
continue-on-error: True
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: [3.9, "3.10", "3.11", "3.12"]
timeout-minutes: 30
steps:
- uses: actions/checkout@master
- uses: actions/setup-python@master
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: pip install tox poetry
# # set up environment depending on the platform in use
# - if: matrix.os == 'ubuntu-latest'
# name: Install dependencies (ubuntu-latest)
# run: ...
# - if: matrix.os == 'macos-latest'
# name: Install dependencies (macos-latest)
# run: ...
# - if: matrix.os == 'windows-latest'
# name: Install dependencies (windows-latest)
# env:
# ACTIONS_ALLOW_UNSECURE_COMMANDS: true
# run: ...
- if: matrix.os == 'macos-latest'
name: Install dependencies (macos-latest)
run: |
# for some reason this seems to be a necessary step for MacOS images, but not for Ubuntu and Windows
brew install hdf5
brew install c-blosc
# https://stackoverflow.com/questions/73029883/could-not-find-hdf5-installation-for-pytables-on-m1-mac
echo "HDF5_DIR=/opt/homebrew/opt/hdf5" >> $GITHUB_ENV
echo "BLOSC_DIR=/opt/homebrew/opt/c-blosc" >> $GITHUB_ENV
- if: ${{ (matrix.os == 'ubuntu-latest') || (matrix.os == 'macos-latest') }}
name: Unit tests and coverage (ubuntu-latest, macos-latest)
run: |
pyver=`echo ${{ matrix.python-version }} | tr -d "."`
tox -e py${pyver} -- -m 'not e2e'
tox -e py${pyver}-nb
- if: ${{ (matrix.os == 'ubuntu-latest') || (matrix.os == 'macos-latest') }}
name: Notebook tests (ubuntu-latest, macos-latest)
run: |
pyver=`echo ${{ matrix.python-version }} | tr -d "."`
tox -e py${pyver}-nb
- if: matrix.os == 'windows-latest'
name: Unit tests and coverage (windows-latest)
run: |
$pyver = "${{ matrix.python-version }}" -replace '\.'
tox -e "py$pyver" -- -m 'not e2e' | Tee-Object output.txt -ErrorAction SilentlyContinue
.\scripts\check-tox-output.ps1 output.txt
- if: matrix.os == 'windows-latest'
name: Notebook tests (windows-latest)
run: |
$pyver = "${{ matrix.python-version }}" -replace '\.'
tox -e "py$pyver-nb" | Tee-Object output.txt -ErrorAction SilentlyContinue
.\scripts\check-tox-output.ps1 output.txt
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
fail_ci_if_error: false