Implementation of SPLASH 1.0 in pyrealm #668
Workflow file for this run
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 and build | |
on: [push, pull_request, merge_group, release] | |
jobs: | |
qa: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: "3.11" | |
- uses: pre-commit/[email protected] | |
test: | |
needs: qa | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest, macos-latest, windows-latest ] | |
python-version: [ "3.9" , "3.10", "3.11"] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.head_ref }} | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Poetry | |
uses: abatilo/[email protected] | |
with: | |
poetry-version: 1.2.2 | |
- name: Install dependencies | |
run: poetry install | |
- name: Run tests | |
run: poetry run pytest -m "not profiling" --cov-report xml | |
- name: Upload coverage reports to Codecov | |
id: codecov | |
if: success() && (matrix.os == 'ubuntu-latest' && matrix.python-version == 3.9) | |
uses: codecov/codecov-action@v3 | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
- name: Run profiling | |
id: profiling | |
if: steps.lfs.outcome == 'success' | |
run: | | |
sudo apt-get install graphviz | |
poetry run pytest -m "profiling" --profile-svg | |
- name: Report performance (this step will fail if performance degrades) | |
if: steps.profiling.outcome == 'success' | |
run: poetry run python profiling/report.py --event ${{ github.event_name }} | |
- uses: stefanzweifel/git-auto-commit-action@v5 | |
if: ${{ always() && steps.profiling.outcome != 'skipped' && github.event_name == 'merge_group' }} | |
with: | |
commit_message: Auto-generated profiling results | |
file_pattern: 'profiling/* .gitattributes' | |
docs_build: | |
needs: qa | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: "3.11" | |
- name: Install Poetry | |
uses: abatilo/[email protected] | |
with: | |
poetry-version: 1.2.2 | |
- name: Install dependencies | |
run: poetry install | |
- name: Set ipython kernel | |
run: poetry run python -m ipykernel install --user --name=pyrealm_python3 | |
- name: Build docs using sphinx | |
run: | | |
cd docs | |
poetry run sphinx-build -W --keep-going source build | |
- name: Archive built docs for error checking on failure | |
if: failure() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: built-docs | |
path: docs/build | |
retention-days: 2 |