tests: install dependencies from poetry.lock instead of duplicating in tox.ini #884
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |