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
      security-events: write # Requerido para cargar SARIF
    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.
  • --format sarif: Salida en formato SARIF para integración con GitHub Code Scanning.

Integración con GitHub Code Scanning

Puedes cargar los resultados de archlint en GitHub Code Scanning para ver los problemas arquitectónicos en la pestaña "Security" (Seguridad) y como anotaciones de PR.

yaml
- name: Scan architecture
  run: npx @archlinter/cli scan --format sarif --report archlint.sarif

- name: Upload SARIF file
  uses: github/codeql-action/upload-sarif@v3
  with:
    sarif_file: archlint.sarif

Released under the MIT License.