Skip to content

Add support for token only authentication in db selection and check if credentials are valid. #529

Add support for token only authentication in db selection and check if credentials are valid.

Add support for token only authentication in db selection and check if credentials are valid. #529

Workflow file for this run

# 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 }}