Skip to content

Release v1.0.0 - Official Production #185

Release v1.0.0 - Official Production

Release v1.0.0 - Official Production #185

Workflow file for this run

# maci: QA Tests
# This workflow will install python and dependencies, and run tests with a range of supported Python versions against different operating systems.
# Python versions being tested: 3.7 - 3.12
# OSes being tested: Windows2019-2022, MacOS11-12, Ubuntu20-22
# Triggered by Push, PR, or Manual run against "main" or dev repo
# Workflow Name
name: qa-testing
# Trigger on Push, PR, and Manual
on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch:
branches:
- '**'
# Build test environment, then run tests
jobs:
qa-tests:
strategy:
fail-fast: false
matrix:
python-version: ["3.12", "3.11", "3.10", "3.9", "3.8", "3.7"]
os: [ubuntu-20.04, ubuntu-22.04, windows-2019, windows-2022, macos-11, macos-12]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python3 -m pip install --upgrade pip
python3 -m pip install -r "requirements-dev.txt"
- name: Run - test framework & coverage report
run: |
coverage run --branch --source="src" -m pytest tests/ -v
coverage report --show-missing --fail-under 100
- name: Run - type checks
run: |
mypy src
mypy tests/support/type_interfaces.py
- name: Run - security checks
run: |
echo === bandit === # check code vulns
bandit -r src/
echo ""
echo === safety === # check dep vulns
safety check -r requirements-dev.txt -r ./deploy/requirements-deploy.txt