Zum Hauptinhalt springen

CI-Pipeline

Die CI läuft bei jedem Push nach main und bei jedem Pull Request. Sie verwendet intelligentes Scoping, um teure Jobs zu überspringen, wenn nur nicht zusammenhängende Bereiche geändert wurden.

Job-Übersicht

JobZweckWann er ausgeführt wird
preflightNur-Doku-Änderungen, geänderte Bereiche und geänderte Extensions erkennen und das CI-Manifest erstellenImmer bei Nicht-Entwurf-Pushes und PRs
security-fastErkennung privater Schlüssel, Workflow-Audit über zizmor, Audit der ProduktionsabhängigkeitenImmer bei Nicht-Entwurf-Pushes und PRs
build-artifactsdist/ und die Control UI einmal bauen, wiederverwendbare Artefakte für nachgelagerte Jobs hochladenNode-relevante Änderungen
checks-fast-coreSchnelle Linux-Korrektheits-Lanes wie Prüfungen für Bundles/Plugin-Verträge/ProtokolleNode-relevante Änderungen
checks-fast-extensionsDie Extension-Shard-Lanes aggregieren, nachdem checks-fast-extensions-shard abgeschlossen istNode-relevante Änderungen
extension-fastGezielte Tests nur für die geänderten gebündelten PluginsWenn Extension-Änderungen erkannt werden
checkHaupt-lokales Gate in CI: pnpm check plus pnpm build:strict-smokeNode-relevante Änderungen
check-additionalArchitektur- und Boundary-Guards plus das Gateway-Watch-Regression-HarnessNode-relevante Änderungen
build-smokeSmoke-Tests für die gebaute CLI und Startup-Speicher-SmokeNode-relevante Änderungen
checksSchwerere Linux-Node-Lanes: vollständige Tests, Kanaltests und nur bei Pushes Node-22-KompatibilitätNode-relevante Änderungen
check-docsDoku-Formatierung, Linting und Prüfungen auf defekte LinksDoku geändert
skills-pythonRuff + pytest für Python-basierte SkillsFür Python-Skills relevante Änderungen
checks-windowsWindows-spezifische Test-LanesWindows-relevante Änderungen
macos-nodemacOS-TypeScript-Test-Lane mit den gemeinsam genutzten gebauten ArtefaktenmacOS-relevante Änderungen
macos-swiftSwift-Lint, Build und Tests für die macOS-AppmacOS-relevante Änderungen
androidAndroid-Build- und TestmatrixAndroid-relevante Änderungen

Fail-Fast-Reihenfolge

Jobs sind so angeordnet, dass günstige Prüfungen fehlschlagen, bevor teure ausgeführt werden:
  1. preflight entscheidet, welche Lanes überhaupt existieren. Die Logik docs-scope und changed-scope sind Schritte innerhalb dieses Jobs, keine eigenständigen Jobs.
  2. security-fast, check, check-additional, check-docs und skills-python schlagen schnell fehl, ohne auf die schwereren Artefakt- und Plattform-Matrix-Jobs zu warten.
  3. build-artifacts überschneidet sich mit den schnellen Linux-Lanes, damit nachgelagerte Verbraucher starten können, sobald der gemeinsame Build bereit ist.
  4. Danach fächern sich schwerere Plattform- und Laufzeit-Lanes auf: checks-fast-core, checks-fast-extensions, extension-fast, checks, checks-windows, macos-node, macos-swift und android.
Die Bereichslogik befindet sich in scripts/ci-changed-scope.mjs und wird durch Unit-Tests in src/scripts/ci-changed-scope.test.ts abgedeckt. Der separate Workflow install-smoke verwendet dasselbe Bereichsskript über seinen eigenen preflight-Job wieder. Er berechnet run_install_smoke aus dem engeren changed-smoke-Signal, sodass Docker-/Install-Smoke nur bei install-, packaging- und containerrelevanten Änderungen läuft. Bei Pushes fügt die Matrix checks die nur bei Pushes ausgeführte Lane compat-node22 hinzu. Bei Pull Requests wird diese Lane übersprungen, und die Matrix bleibt auf die normalen Test-/Kanal-Lanes fokussiert.

Runner

RunnerJobs
blacksmith-16vcpu-ubuntu-2404preflight, security-fast, build-artifacts, Linux-Prüfungen, Doku-Prüfungen, Python-Skills, android
blacksmith-32vcpu-windows-2025checks-windows
macos-latestmacos-node, macos-swift

Lokale Äquivalente

pnpm check          # Typen + Lint + Format
pnpm build:strict-smoke
pnpm test:gateway:watch-regression
pnpm test           # vitest-Tests
pnpm test:channels
pnpm check:docs     # Doku-Format + Lint + defekte Links
pnpm build          # dist bauen, wenn die CI-Artefakt-/build-smoke-Lanes relevant sind