CI mínima común reutilizable para los repos de andres20980 (Forgejo Actions)
Find a file
andres20980 6acb8933a3
All checks were successful
Autoprueba / detectar (push) Successful in 19s
Autoprueba / secretos (push) Successful in 16s
Autoprueba / workflows (push) Successful in 29s
Autoprueba / calidad (push) Successful in 15s
Autoprueba / tests (push) Successful in 21s
Autoprueba / compilar (push) Has been skipped
Autoprueba / dependencias (push) Successful in 19s
Autoprueba / sbom (push) Successful in 39s
Autoprueba / resultado (push) Successful in 14s
Autoprueba / ci (push) Successful in 0s
Merge pull request 'feat(ci): añadir SBOM CycloneDX, huellas y procedencia' (#3) from session/20260726-2300-sbom into main
2026-07-26 18:40:32 +00:00
.forgejo no-mistakes(review): fix: add sbom to resultado needs, pin SBOM tool versions 2026-07-26 20:36:11 +02:00
.gitignore no-mistakes(review): fix aggregate false-green, validator gaps, pip errors; drop bytecode 2026-07-25 14:06:10 +02:00
README.md feat(ci): añadir SBOM CycloneDX, huellas y procedencia 2026-07-26 20:33:57 +02:00

forgejo-ci

CI mínima común y reutilizable para los repos de andres20980 en https://andres20980.es/repos. Un solo workflow, versionado, que detecta el stack del repo que lo llama.

Qué ejecuta

Fase Qué hace
detectar Deduce el stack: node, python, go, rust, shell
calidad Formato y lint según stack (ruff, gofmt+go vet, clippy, shellcheck, scripts npm)
tests Suite del repo si existe; no inventa tests donde no los hay
compilar Build del stack (omitible con skip-build)
secretos Escaneo de patrones de alto valor sin dependencias externas
dependencias npm audit, pip-audit, govulncheck, cargo audit
workflows Valida los propios workflows: YAML, runs-on, refs móviles
sbom Inventario CycloneDX, huellas SHA-256 y procedencia; omitible con skip-sbom
resultado Agregado obligatorio — el único job que hay que exigir

Cómo adoptarlo

En el repo consumidor, .forgejo/workflows/ci.yml:

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

jobs:
  ci:
    uses: andres20980/forgejo-ci/.forgejo/workflows/ci-comun.yml@<SHA>

Fija siempre por SHA, nunca por rama: una rama móvil convierte tu CI en algo irreproducible, y la propia fase workflows lo marca como error.

Principios

  • Nada de acciones de terceros no fijadas; el escáner de secretos no usa binarios externos.
  • Los pasos ausentes no fallan: si el repo no define lint o test, se omiten en vez de dar rojo falso.
  • Un único resultado agregado, para que la promoción a producción dependa de una sola señal.
  • El SBOM sale de la herramienta del propio stack (npm sbom, cyclonedx-py, cyclonedx-gomod, cargo-cyclonedx), no de una acción de terceros: el generador del inventario no debe ser el eslabón que comprometa la cadena que documenta.
  • La procedencia es SLSA nivel 1: deja por escrito quién construyó qué, desde qué commit y con qué workflow. No va firmada; una atestación firmada exige un constructor aislado (L2+), que este runner todavía no ofrece.