summaryrefslogtreecommitdiffstats
path: root/.github/workflows/ci.yaml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/ci.yaml')
-rw-r--r--.github/workflows/ci.yaml62
1 files changed, 62 insertions, 0 deletions
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
new file mode 100644
index 0000000..7e55e6a
--- /dev/null
+++ b/.github/workflows/ci.yaml
@@ -0,0 +1,62 @@
+---
+
+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@v4
+ - name: Set up Python
+ uses: actions/setup-python@v5
+ - run:
+ pip install flake8 flake8-import-order sphinx sphinx_rtd_theme
+ 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.8'
+ - '3.9'
+ - '3.10'
+ - '3.11'
+ - '3.12'
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v5
+ 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