|
|
|
---
|
|
|
|
|
|
|
|
name: CI
|
|
|
|
|
|
|
|
on: # yamllint disable-line rule:truthy
|
|
|
|
push:
|
|
|
|
pull_request:
|
|
|
|
branches:
|
|
|
|
- master
|
|
|
|
|
|
|
|
permissions:
|
|
|
|
contents: read
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
lint:
|
|
|
|
name: Linters
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
- name: Checkout
|
|
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Set up Python
|
|
|
|
uses: actions/setup-python@v4
|
|
|
|
- run:
|
|
|
|
pip install flake8 flake8-import-order sphinx rstcheck[sphinx] doc8
|
|
|
|
- run: pip install .
|
|
|
|
- run: flake8 .
|
|
|
|
- run: doc8 $(git ls-files '*.rst')
|
|
|
|
- run: rstcheck --ignore-directives automodule $(git ls-files '*.rst')
|
|
|
|
- run: yamllint --strict $(git ls-files '*.yaml' '*.yml')
|
|
|
|
- run: make -C docs html
|
|
|
|
- name: Check for broken links in documentation
|
|
|
|
run: make -C docs linkcheck
|
|
|
|
|
|
|
|
test:
|
|
|
|
name: Tests
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
|
|
|
python-version:
|
|
|
|
- '3.7'
|
|
|
|
- '3.8'
|
|
|
|
- '3.9'
|
|
|
|
- '3.10'
|
|
|
|
- '3.11'
|
|
|
|
steps:
|
|
|
|
- name: Checkout
|
|
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Set up Python ${{ matrix.python-version }}
|
|
|
|
uses: actions/setup-python@v4
|
|
|
|
with:
|
|
|
|
python-version: ${{ matrix.python-version }}
|
|
|
|
- name: Append GitHub Actions system path
|
|
|
|
run: echo "$HOME/.local/bin" >> $GITHUB_PATH
|
|
|
|
- run: pip install coverage
|
|
|
|
- run: pip install .
|
|
|
|
# https://github.com/AndreMiras/coveralls-python-action/issues/18
|
|
|
|
- run: echo -e "[run]\nrelative_files = True" > .coveragerc
|
|
|
|
- run: coverage run -m unittest discover
|
|
|
|
- name: Coveralls
|
|
|
|
uses: AndreMiras/coveralls-python-action@develop
|