Skip to content

GitHub Actions

Integra archlint en tu flujo de trabajo de GitHub para prevenir regresiones arquitectónicas en cada Pull Request con comentarios y anotaciones detalladas.

La Acción de archlint (Action)

La forma más sencilla de usar archlint en GitHub es a través de nuestra GitHub Action oficial.

Características

  • Comentarios en PR: Publica automáticamente un informe detallado en tu PR.
  • Anotaciones en línea: Muestra regresiones arquitectónicas directamente en las líneas de código que las causaron.
  • Resumen Automático: Añade un informe resumen a la página de ejecución del job.

Ejemplo de Flujo de Trabajo (Workflow)

Crea .github/workflows/architecture.yml:

yaml
name: Architecture

on: [pull_request]

jobs:
  archlint:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write # Requerido para comentarios en PR
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0 # Importante para el análisis de git diff analysis

      - name: archlint
        uses: archlinter/action@v1
        with:
          baseline: origin/${{ github.base_ref }}
          fail-on: medium
          github-token: ${{ github.token }}

Entradas (Inputs)

EntradaDescripciónPor defecto
baselineReferencia de Git o archivo snapshot para compararorigin/main
fail-onSeveridad mínima para fallar (low, medium, high, critical)medium
commentPublica un comentario en el PR con el informe de arquitecturatrue
annotationsMuestra anotaciones en línea para los smells arquitectónicostrue
working-directoryDirectorio a analizar.
github-tokenToken de GitHub para publicar comentarios${{ github.token }}

Uso Manual de la CLI

Si prefieres ejecutar la CLI manualmente, puedes usar npx @archlinter/cli:

yaml
- name: Check for architectural regressions
  run: npx @archlinter/cli diff origin/${{ github.base_ref }} --fail-on medium --explain

Flags de la CLI para CI

  • --fail-on <severity>: Sale con código 1 si se encuentran regresiones de este nivel o superior.
  • --explain: Consejos detallados sobre por qué un smell es malo y cómo solucionarlo.
  • --json: Salida del resultado en formato JSON para procesamiento personalizado.

Released under the MIT License.