Files
enlace/.github/workflows/python.yml
T
msaldain 03dadc93da
YAML / yaml (push) Failing after 1m58s
Python / calidad (push) Successful in 6s
Python / tests (push) Failing after 1m22s
Aplicar ruff format a todo el código
Cambio mecánico, sin efecto en el comportamiento: la suite pasa igual antes y
después. Va en un commit propio para no tapar los cambios con sentido.

Se agregan además dos flujos de verificación que corren en cada carga al
repositorio:

- YAML: yamllint para sintaxis y estilo, más la carga de cada config contra su
  esquema de pydantic. Son cosas distintas — un YAML puede ser sintácticamente
  perfecto y estar roto igual, con 'run_nombre' en vez de 'run_name'. Ese paso
  no instala torch: se verificó que la capa de configuración no lo importa, así
  que corre en segundos en vez de descargar dos gigas y medio de CUDA.
- Python: ruff check, ruff format --check y la suite completa con torch de CPU.

Las rutas ignoradas de .yamllint.yml van ancladas con barra inicial. Sin
anclar, 'data/' y 'runs/' excluían configs/data/ y configs/runs/ — siete
archivos, justo los que más importa revisar — y el linter pasaba en verde sin
haber mirado nada. Es el mismo defecto que ya había aparecido en .gitignore.
2026-07-28 07:25:51 -03:00

65 lines
2.1 KiB
YAML

# Calidad del código Python, en cada carga.
#
# Existe por una razón concreta: ruff estaba configurado en pyproject.toml desde
# el primer commit y nunca se había ejecutado. Cuando por fin se corrió tenía 15
# hallazgos, uno de ellos real —`zip()` sin `strict=` trunca en silencio al más
# corto, así que un test que compara dos listas de distinto largo pasaría sin
# comparar todo— y otro que delataba un backend sin ninguna prueba.
#
# Una regla que no se ejecuta no es una regla.
name: Python
on:
push:
pull_request:
jobs:
calidad:
runs-on: ubuntu-latest
steps:
- name: Descargar el repositorio
uses: actions/checkout@v4
- name: Preparar Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Instalar ruff
run: python -m pip install --upgrade pip "ruff>=0.6"
- name: Estilo y errores
# Las reglas viven en pyproject.toml, no acá: un solo lugar donde
# cambiarlas, y el mismo resultado corriendo `ruff check .` en local.
run: ruff check --output-format=github .
- name: Formato consistente
run: ruff format --check --diff .
tests:
runs-on: ubuntu-latest
steps:
- name: Descargar el repositorio
uses: actions/checkout@v4
- name: Preparar Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Instalar dependencias
# torch de CPU explícitamente: la variante con CUDA pesa unos 2,5 GB y
# acá no hay placa. La suite entera corre en CPU a propósito.
run: |
python -m pip install --upgrade pip
python -m pip install torch --index-url https://download.pytorch.org/whl/cpu
python -m pip install -e ".[dev]"
- name: Suite de tests
# Se desactiva la carga automática de plugins: en entornos con otros
# paquetes instalados (ROS, por ejemplo) pytest intenta cargar sus
# plugins y falla al recolectar por motivos ajenos al proyecto.
env:
PYTEST_DISABLE_PLUGIN_AUTOLOAD: "1"
run: pytest -q