Skip to content

CI

CI #452

Workflow file for this run

name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
branches: [ main ]
schedule:
- cron: '0 7 * * 1-5'
jobs:
validate_pyproject:
name: Validate pyproject.toml
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: |
python --version
python -m pip install --upgrade pip
python -m pip install validate-pyproject[all]
- name: Validate pyproject.toml
run: |
python -m validate_pyproject -vv pyproject.toml
lint:
name: Lint code base
needs: [validate_pyproject]
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11']
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python --version
python -m pip install --upgrade pip
python -m pip install \
pylint \
black \
pytest \
- name: Pylint
run: |
python -m pylint -v --rcfile=pyproject.toml .
- name: Black
run: |
python -m black -v --check --diff .
unit_tests:
name: Run unit tests
needs: [lint]
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11']
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies and project
run: |
python --version
python -m pip install --upgrade pip
python -m pip install \
pytest \
pytest-mock \
pytest-cov \
python -m pip install .
- name: Unit tests with coverage
run: |
export COVERAGE_PROCESS_START="$(pwd)/pyproject.toml"
pytest -vra --cov --cov-config=pyproject.toml tests/unit
unit_tests_self_run:
name: Run unit tests via pyproject_installer
needs: [lint]
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11']
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies and project
run: |
python --version
python -m pip install --upgrade pip
python -m pip install \
pytest \
pytest-mock \
python -m pip install .
- name: Unit tests with self run
run: |
python -m pyproject_installer -v build
python -m pyproject_installer -v run -- pytest -vra tests/unit
integration_tests:
name: Run integration tests
needs: [lint]
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11']
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies and project
run: |
python --version
python -m pip install --upgrade pip
python -m pip install pytest
python -m pip install .
- name: integration tests
run: |
pytest -vra tests/integration