Feature/106 parse data types #512
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
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions | |
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | |
name: Tests, Code Quality and Documentation | |
on: | |
push: | |
branches: | |
- main | |
- dev | |
pull_request: | |
branches: | |
- main | |
- dev | |
workflow_dispatch: | |
jobs: | |
test: | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 10 | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ["3.10", "3.11"] | |
os: [ubuntu-latest, macOS-latest, windows-latest] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Run poetry image | |
uses: abatilo/[email protected] | |
with: | |
poetry-version: ${{ vars.POETRY_VERSION }} | |
- name: Install dependencies | |
run: | | |
poetry install --with dev | |
- name: Run tests | |
run: | | |
poetry run pytest --cov=pystatis --vcr-record=none tests | |
code-quality: | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 10 | |
strategy: | |
fail-fast: false | |
matrix: | |
# only support specific python version, as guidelines differ beween (minor) versions | |
python-version: ["3.11.7"] | |
os: [ubuntu-latest] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Run poetry image | |
uses: abatilo/[email protected] | |
with: | |
poetry-version: ${{ vars.POETRY_VERSION }} | |
- name: Install dependencies | |
run: poetry install --with dev | |
- name: Ruff format check | |
run: poetry run ruff format --check src | |
- name: Ruff lint check | |
run: poetry run ruff check src | |
- name: Run bandit | |
run: poetry run bandit -r src | |
- name: Run Safety CLI to check for vulnerabilities | |
uses: pyupio/[email protected] | |
with: | |
api-key: ${{ secrets.SAFETY_API_KEY }} | |
args: "--short-report --policy-file=.safety-policy.yml" | |
- name: Run mypy | |
run: poetry run mypy src | |
sphinx-documentation-and-coverage: | |
runs-on: ubuntu-latest | |
name: Sphinx Documentation and Test Coverage | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ vars.PYTHON_VERSION}} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ vars.PYTHON_VERSION}} | |
- name: Run poetry image | |
uses: abatilo/[email protected] | |
with: | |
poetry-version: ${{ vars.POETRY_VERSION }} | |
- name: Install dependencies | |
run: | | |
poetry install --with dev | |
- name: Build documentation | |
run: | | |
cd docs | |
poetry run make clean | |
poetry run make html | |
- name: Upload documentation as artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: docs | |
path: docs/build/html/* | |
retention-days: 5 | |
- name: Generate and filter test coverage report | |
run: | | |
poetry run pytest --cov=src/pystatis --cov-report=xml --vcr-record=none tests | |
- name: Upload coverage reports to Codecov with GitHub Action | |
uses: codecov/[email protected] | |
with: | |
verbose: true | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} |