Skip to content

GitHub Actions

Integre o archlint ao seu workflow do GitHub para evitar regressões arquiteturais em cada Pull Request com comentários e anotações elegantes.

A Action do archlint

A maneira mais fácil de usar o archlint no GitHub é através da nossa GitHub Action oficial.

Recursos

  • Comentários em PR: Posta automaticamente um relatório detalhado no seu PR.
  • Anotações Inline: Mostra regressões arquiteturais diretamente nas linhas de código que as causaram.
  • Resumo Automático: Adiciona um relatório de resumo à página de execução do job.

Exemplo de Workflow

Crie .github/workflows/architecture.yml:

yaml
name: Architecture

on: [pull_request]

jobs:
  archlint:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write # Necessário para comentários em PR
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0 # Importante para análise de git diff

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

Entradas (Inputs)

EntradaDescriçãoPadrão
baselineReferência git ou arquivo de snapshot para compararorigin/main
fail-onSeveridade mínima para falhar (low, medium, high, critical)medium
commentPostar comentário no PR com o relatório de arquiteturatrue
annotationsMostrar anotações inline para "cheiros" (smells) arquiteturaistrue
working-directoryDiretório para analisar.
github-tokenToken do GitHub para postar comentários${{ github.token }}

Uso Manual via CLI

Se preferir executar a CLI manualmente, você pode usar npx @archlinter/cli:

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

Flags da CLI para CI/CD

  • --fail-on <severity>: Sai com 1 se regressões deste nível ou superior forem encontradas.
  • --explain: Conselhos detalhados sobre por que um smell é ruim e como corrigi-lo.
  • --json: Saída do resultado como JSON para processamento personalizado.

Released under the MIT License.