Code: Select all
name: code quality
on: [push, workflow_dispatch]
jobs:
check-cache:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: python setup
id: pydeps
uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'pip'
cache-dependency-path: 'requirements*.txt'
- name: dependencies
if: steps.pydeps.outputs.cache-hit == 'false'
run: |
python -m pip install -r requirements.txt
python -m pip install -r requirements_dev.txt
lint:
needs: check-cache
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: check black and mypy
run: |
python -m black --check src
python -m mypy src
test-unit:
needs: check-cache
name: run unit tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: test code
id: test
run: python -m pytest tests/unit_tests
- name: test artifacts
if: failure() && steps.test.outcome == 'failure'
uses: actions/upload-artifact@v4
with:
name: log-unit-tests
path: logs-unit
test-module:
needs: check-cache
name: run module tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: test code
id: test
run: python -m pytest tests/module_tests
- name: test artifacts
if: failure() && steps.test.outcome == 'failure'
uses: actions/upload-artifact@v4
with:
name: log-module-tests
path: logs-module