Fix bump CI action #22
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: 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'" | |
# There are still a lot of mypy errors to resolve | |
- name: mypy | |
continue-on-error: true | |
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,notebooks'" | |
- name: docs | |
# TODO: Enable -W option once the sphinx warnings are cleared up | |
run: poetry run sphinx-build --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 | |
# TODO: Add --doctest-modules option | |
run: | | |
poetry run pytest -r a -v src tests --cov --cov-report=term-missing --cov-report=xml | |
poetry run coverage report | |
- name: Upload coverage reports to Codecov | |
uses: codecov/codecov-action@v3 | |
test-pandas-versions: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: [ "3.8" ] | |
pandas-version: [ "1.1" ] | |
steps: | |
- name: Checkout 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: Install test dependencies | |
run: | | |
pip install pandas==${{ matrix.pandas-version }} numpy==1.20.0 | |
- name: Test with pytest | |
run: | | |
poetry run pytest -r a -v src tests | |
test-xarray-versions: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: [ "3.9" ] | |
xarray-version: [ "0.16.2", "0.17.0", "0.18.2" ] | |
steps: | |
- name: Checkout 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: Install test dependencies | |
run: | | |
pip install xarray==${{ matrix.xarray-version }} | |
- name: Test with pytest | |
run: | | |
poetry run pytest -r a -v src tests | |
test-no-plotting: | |
# This test makes sure that everything works even if the plotting | |
# dependencies aren't installed. | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ["3.9"] | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- uses: ./.github/actions/setup | |
with: | |
python-version: "${{ matrix.python-version }}" | |
venv-id: "tests-${{ runner.os }}" | |
poetry-dependency-install-flags: "--extras optional --with tests" | |
- name: Test with pytest | |
run: | | |
poetry run pytest -r a -v src tests | |
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/scmdata-*.tar.gz --wildcards '*scmdata/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 --without=tests --without=docs --without=dev > $TEMP_FILE | |
poetry run liccheck -r $TEMP_FILE -R licence-check.txt | |
cat licence-check.txt |