Skip to content

[CI/CD] Tests not enforced in GitHub Actions #1

@caiaffa

Description

@caiaffa

Problema

Atualmente, o workflow .github/workflows/publish.yml é acionado apenas em pushes de tags v* e executa exclusivamente o processo de build e publish no PyPI. Hoje não existe nenhuma etapa de validação automatizada com pytest, ruff ou mypy sendo executada em pull requests ou em pushes para main.

O projeto já possui uma base relevante de qualidade configurada, incluindo 121 testes e dependências de desenvolvimento definidas em [project.optional-dependencies].dev no pyproject.toml, como:

  • pytest>=8.0.0
  • ruff>=0.4.0
  • mypy>=1.10.0

Apesar disso, essas validações nunca são executadas automaticamente no fluxo de integração.

Impacto

Sem uma pipeline de CI rodando antes do merge ou da publicação, código quebrado pode ser integrado à main e, em seguida, publicado no PyPI sem nenhuma barreira de qualidade.

Além disso, como a configuração do mypy utiliza strict = true no pyproject.toml, existe um risco ainda maior de regressões de tipagem e segurança de tipos passarem despercebidas até chegarem em produção.

Proposta

Criar um novo workflow .github/workflows/ci.yml para validar o projeto em pushes para main e em pull requests direcionados à main.

Exemplo:

name: CI

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: ["3.11", "3.12"]

    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-python@v5
        with:
          python-version: ${{ matrix.python-version }}

      - run: pip install -e ".[dev]"
      - run: pytest tests/ -v
      - run: ruff check epi/
      - run: mypy epi/

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions