Skip to content

Add build, test and publish workflow #17

Add build, test and publish workflow

Add build, test and publish workflow #17

name: Python package
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.11"]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install autopep8 flake8 coverage pytest mypy
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Lint with autopep8 and get statistics from flake8
run: |
# exit-zero treats all errors as warnings.
# show statistics for Python syntax errors or undefined names.
# the GitHub editor is 127 chars wide.
flake8 . --count --exit-zero --extend-ignore E402 --max-complexity=10 --max-line-length=127 --show-source --statistics
# stop the build if there are Python syntax errors.
autopep8 . --ignore E402 --recursive --diff --exit-code
- name: Test with pytest
run: |
coverage run -m pytest
- name: Report coverage statistics on modules
run: |
coverage report --fail-under=80 --show-missing
- name: Type checking with mypy
run: |
mypy --strict .