Skip to content

GitHub Actions

Интегрируйте archlint в ваш рабочий процесс GitHub, чтобы предотвращать архитектурные регрессии в каждом Pull Request с помощью красивых комментариев и аннотаций.

Экшен archlint

Самый простой способ использовать archlint на GitHub — через наш официальный GitHub Action.

Возможности

  • Комментарии к PR: Автоматически публикует подробный отчет в вашем PR.
  • Инлайновые аннотации: Показывает архитектурную регрессию прямо на строках кода, которые их вызвали.
  • Автоматическое резюме: Добавляет сводный отчет на страницу выполнения задания.

Пример Workflow

Создайте .github/workflows/architecture.yml:

yaml
name: Architecture

on: [pull_request]

jobs:
  archlint:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write # Требуется для комментариев к PR
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0 # Важно для анализа git diff

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

Входные параметры

ПараметрОписаниеПо умолчанию
baselineGit ref или файл snapshot для сравненияorigin/main
fail-onМинимальная критичность для провала (low, medium, high, critical)medium
commentПубликовать комментарий в PR с отчетомtrue
annotationsПоказывать инлайновые аннотации для архитектурных запаховtrue
working-directoryДиректория для анализа.
github-tokenТокен GitHub для публикации комментариев${{ github.token }}

Ручное использование CLI

Если вы предпочитаете запускать CLI вручную, вы можете использовать npx @archlinter/cli:

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

Флаги CLI для CI

  • --fail-on <severity>: Выйти с кодом 1, если найдены регрессии этого уровня или выше.
  • --explain: Подробные советы о том, почему запах плох и как его исправить.
  • --json: Вывод результата в формате JSON для кастомной обработки.

Released under the MIT License.