nightly #202
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
# This workflow installs the package, runs the tests and builds the docs | |
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | |
name: nightly | |
# This workflow is called nightly for consistency with programming convention | |
# even though it is scheduled to run only once per week... | |
on: | |
schedule: | |
# see https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows#scheduled-events | |
# 05:00 UTC = 06:00 CET = 07:00 CEST | |
- cron: "0 5 * * TUE" | |
jobs: | |
pytest: | |
strategy: | |
matrix: | |
os: | |
- ubuntu-latest | |
python-version: | |
- '3.10' | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
name: ${{ matrix.os }} py${{ matrix.python-version }} | |
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 Pandoc | |
uses: r-lib/actions/setup-pandoc@v2 | |
#------------------------------ | |
# install & configure poetry | |
#------------------------------ | |
- name: Install Poetry | |
uses: snok/install-poetry@v1 | |
with: | |
virtualenvs-create: true | |
virtualenvs-in-project: true | |
installer-parallel: true | |
#------------------------------------------ | |
# update dependencies to latest versions | |
#------------------------------------------ | |
- name: Update dependencies | |
run: poetry update dev,docs,optional_io_formats,optional_plotting,tutorials,wbdata --lock | |
#------------------------------------ | |
# load cached venv if cache exists | |
#------------------------------------ | |
- name: Load cached venv | |
id: cached-poetry-dependencies | |
uses: actions/cache@v4 | |
with: | |
path: .venv | |
key: venv-${{ matrix.os }}-${{ matrix.python-version }}-${{ hashFiles('**/poetry.lock') }} | |
#------------------------------------------------ | |
# install dependencies if cache does not exist | |
#------------------------------------------------ | |
- name: Install dependencies | |
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' | |
run: poetry install --no-interaction --with calamine,dev,docs,optional_io_formats,optional_plotting,tutorials,wbdata --no-root | |
#------------------------ | |
# install root project | |
#------------------------ | |
- name: Install library | |
run: poetry install --no-interaction --only-root | |
- name: Test with pytest (including Matplotlib) | |
run: poetry run pytest tests --mpl | |
- name: Build the docs | |
run: poetry run make --directory=docs html |