r3w0p/bobocep

View on GitHub
.github/workflows/cidev.yml

Summary

Maintainability
Test Coverage
name: CI (Dev)

on:
  push:
    branches:
      - '**'
      - '!main'
    tags-ignore:
      - '**'

jobs:
  ci:
    name: CI
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ ubuntu-latest, macos-latest, windows-latest ]
        python-version: [ "3.9", "3.10", "3.11", "3.12" ]
    steps:
      - name: Checkout repository
        uses: actions/checkout@v2

      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v2
        with:
          python-version: ${{ matrix.python-version }}

      - name: Install dependencies
        run: |
          pip install --upgrade pip
          pip install -r requirements.txt
          pip install -r requirements-dev.txt

      - name: Lint with flake8
        run: |
          # Stop the build if there are Python syntax errors or undefined names
          flake8 ./bobocep --count --select=E9,F63,F7,F82 --show-source --statistics
          flake8 ./tests --count --select=E9,F63,F7,F82 --show-source --statistics

      - name: Type check with mypy
        run: |
          mypy ./bobocep
          mypy ./tests

      - name: Code coverage with coverage and pytest
        run: |
          coverage run -m pytest tests
          coverage report --fail-under=100

      - name: Upload coverage reports to Codecov
        if: ${{ (matrix.os == 'ubuntu-latest') && (matrix.python-version == '3.9') }}
        uses: codecov/codecov-action@v4.0.1
        with:
          token: ${{ secrets.CODECOV_TOKEN }}
          verbose: true

      - name: Documentation coverage with interrogate
        run: |
          interrogate -vv bobocep --fail-under 100