Merge pull request #13 from climate-resource/loosen-deps #69
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
# Massive thanks to https://github.com/marketplace/actions/install-poetry-action | |
# Some more inspo for workflows could come from here | |
# https://github.com/LaurenceRawlings/python-poetry-cicd/tree/main/.github/workflows | |
# #8: take a look at https://github.com/actions/cache/blob/main/caching-strategies.md#make-cache-read-only--reuse-cache-from-centralized-job | |
# for caching, or https://github.com/KyleKing/copier-template-tester/tree/main/.github, | |
# particularly their use of an internal action for setup | |
name: CI | |
on: | |
pull_request: | |
push: | |
branches: [main] | |
tags: ['v*'] | |
jobs: | |
mypy: | |
if: ${{ !github.event.pull_request.draft }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
- uses: ./.github/actions/setup | |
with: | |
python-version: "3.9" | |
venv-id: "docs" | |
poetry-dependency-install-flags: "--all-extras --only 'main,dev'" | |
- name: mypy | |
run: MYPYPATH=stubs poetry run mypy src | |
docs: | |
if: ${{ !github.event.pull_request.draft }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
- uses: ./.github/actions/setup | |
with: | |
python-version: "3.9" | |
venv-id: "docs" | |
poetry-dependency-install-flags: "--all-extras --only 'main,docs'" | |
- name: docs | |
run: poetry run sphinx-build -W --keep-going -T -b html docs/source docs/build | |
tests: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ "ubuntu-latest" ] | |
python-version: [ "3.9", "3.10", "3.11" ] | |
runs-on: "${{ matrix.os }}" | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
- uses: ./.github/actions/setup | |
with: | |
python-version: "${{ matrix.python-version }}" | |
venv-id: "tests-${{ runner.os }}" | |
poetry-dependency-install-flags: "--all-extras" | |
- name: Run tests | |
run: | | |
poetry run pytest -r a -v src tests --doctest-modules --cov=src --cov-report=term-missing --cov-report=xml | |
poetry run coverage report | |
- name: Upload coverage reports to Codecov | |
uses: codecov/codecov-action@v3 | |
# TODO: note need to authorise codecov with repo before this will work when back propagating | |
imports-without-extras: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ "ubuntu-latest" ] | |
python-version: [ "3.9", "3.10", "3.11" ] | |
runs-on: "${{ matrix.os }}" | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
- uses: ./.github/actions/setup | |
with: | |
python-version: "${{ matrix.python-version }}" | |
venv-id: "imports-without-extras-${{ runner.os }}" | |
poetry-dependency-install-flags: "--only main" | |
- name: Check importable without extras | |
run: poetry run python scripts/test-install.py | |
check-build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
- uses: ./.github/actions/setup | |
with: | |
python-version: "3.9" | |
venv-id: "check-build-${{ runner.os }}" | |
run-poetry-install: false | |
poetry-dependency-install-flags: "not used" | |
- name: Build package | |
run: | | |
poetry build --no-interaction | |
- name: Check build | |
run: | | |
tar -tvf dist/carpet_concentrations-*.tar.gz --wildcards '*carpet_concentrations/py.typed' | |
check-dependency-licences: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
- uses: ./.github/actions/setup | |
with: | |
python-version: "3.9" | |
venv-id: "licence-check" | |
poetry-dependency-install-flags: "--all-extras" | |
- name: Check licences of dependencies | |
shell: bash | |
run: | | |
TEMP_FILE=$(mktemp) | |
poetry export --only=main --extras=cfxarray --extras=netcdf --extras=notebooks --extras=plots > $TEMP_FILE | |
poetry run liccheck -r $TEMP_FILE -R licence-check.txt | |
cat licence-check.txt |