Derived Modular Arch
Инструменты

CI

Как подключить dma check в пайплайн — GitHub Actions, JSON, SARIF.

dma check — единственная проверка, которая должна блокировать слияние. Линтеры в CI полезны, но без CLI вы не увидите циклы и предикаты входящих рёбер.

Минимальный шаг

npx @derived-modular/cli check .

Код выхода 1 — есть архитектурные нарушения. Код выхода 2 — проблема окружения (нет src/, битый tsconfig).

Добавьте команду в пайплайн после install и до deploy.

GitHub Actions

name: Architecture

on:
  pull_request:
  push:
    branches: [main]

jobs:
  dma:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-node@v4
        with:
          node-version: 22

      - run: npm ci

      - run: npx @derived-modular/cli check . --format json

Для bun:

      - uses: oven-sh/setup-bun@v2

      - run: bun install --frozen-lockfile

      - run: bun x @derived-modular/cli check .

JSON для скриптов и агентов

npx @derived-modular/cli check . --format json > dma-report.json

Отчёт стабильный (version: 1) — удобно парсить в custom CI, ботах, AI-агентах.

SARIF для GitHub Code Scanning

npx @derived-modular/cli check . --format sarif > dma.sarif

Загрузите артефакт в Code Scanning — нарушения появятся во вкладке Security рядом с другими анализаторами.

Что запускать вместе

ШагКомандаБлокирует слияние?
Архитектура (обязательно)npx @derived-modular/cli check .Да
Линт (опционально)eslint . / biome checkПо желанию команды
Эволюция (опционально)npx @derived-modular/cli doctor .Нет (код выхода 0)

doctor в CI имеет смысл только как информационная задача — сигналы роста, не блокировка.

Монорепо

С корня workspace (без src/) можно найти и проверить все DMA apps одним вызовом:

npx @derived-modular/cli check .
npx @derived-modular/cli check --roots apps/web,apps/admin

Или per package / turbo filter. Подробнее — Монорепо.

Примеры в репозитории DMA

Все examples проходят dma check. В CI самого монорепо DMA:

- name: DMA-check examples
  run: bun run dma-check:examples

Типичные ошибки

ПроблемаРешение
exit 2, нет src/ / нет корнейПуть к app, или корень монорепо с discoverable apps / --roots
Алиасы не резолвятсяПроверьте tsconfig.json paths в корне приложения
CI зелёный, локально падаетВерсии CLI, разный cwd, незакоммиченные файлы

Что дальше

On this page