# Verificación de los YAML del repositorio, en cada carga. # # Dos niveles, porque atrapan cosas distintas: # # 1. yamllint mira la sintaxis y el estilo: indentación, duplicados, tabs. # 2. La validación contra el esquema carga cada config con pydantic. Un YAML # puede ser sintácticamente perfecto y estar roto igual — `n_layers` en vez # de `n_layer`, un schedule que no entra en max_steps, float16 sin # GradScaler. Eso solo lo ve el esquema. # # El segundo paso no instala torch a propósito: la capa de configuración no lo # importa, así que el CI corre en segundos en vez de descargar 2,5 GB de CUDA. name: YAML on: push: pull_request: jobs: yaml: 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 # Solo lo que hace falta: yamllint para la sintaxis, pydantic y # omegaconf para el esquema. Nada de torch. run: | python -m pip install --upgrade pip python -m pip install "yamllint>=1.35" "pydantic>=2.7" "omegaconf>=2.3" - name: Sintaxis y estilo de los YAML # --strict convierte las advertencias en errores: si una regla no vale # la pena, se desactiva en .yamllint.yml, no se deja avisando para # siempre. run: yamllint --strict . - name: Las configs cargan y pasan su esquema run: python scripts/validar_configs.py