CI-Pipeline
Die CI läuft bei jedem Push nachmain 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
| Job | Zweck | Wann er ausgeführt wird |
|---|---|---|
preflight | Nur-Doku-Änderungen, geänderte Bereiche und geänderte Extensions erkennen und das CI-Manifest erstellen | Immer bei Nicht-Entwurf-Pushes und PRs |
security-fast | Erkennung privater Schlüssel, Workflow-Audit über zizmor, Audit der Produktionsabhängigkeiten | Immer bei Nicht-Entwurf-Pushes und PRs |
build-artifacts | dist/ und die Control UI einmal bauen, wiederverwendbare Artefakte für nachgelagerte Jobs hochladen | Node-relevante Änderungen |
checks-fast-core | Schnelle Linux-Korrektheits-Lanes wie Prüfungen für Bundles/Plugin-Verträge/Protokolle | Node-relevante Änderungen |
checks-fast-extensions | Die Extension-Shard-Lanes aggregieren, nachdem checks-fast-extensions-shard abgeschlossen ist | Node-relevante Änderungen |
extension-fast | Gezielte Tests nur für die geänderten gebündelten Plugins | Wenn Extension-Änderungen erkannt werden |
check | Haupt-lokales Gate in CI: pnpm check plus pnpm build:strict-smoke | Node-relevante Änderungen |
check-additional | Architektur- und Boundary-Guards plus das Gateway-Watch-Regression-Harness | Node-relevante Änderungen |
build-smoke | Smoke-Tests für die gebaute CLI und Startup-Speicher-Smoke | Node-relevante Änderungen |
checks | Schwerere Linux-Node-Lanes: vollständige Tests, Kanaltests und nur bei Pushes Node-22-Kompatibilität | Node-relevante Änderungen |
check-docs | Doku-Formatierung, Linting und Prüfungen auf defekte Links | Doku geändert |
skills-python | Ruff + pytest für Python-basierte Skills | Für Python-Skills relevante Änderungen |
checks-windows | Windows-spezifische Test-Lanes | Windows-relevante Änderungen |
macos-node | macOS-TypeScript-Test-Lane mit den gemeinsam genutzten gebauten Artefakten | macOS-relevante Änderungen |
macos-swift | Swift-Lint, Build und Tests für die macOS-App | macOS-relevante Änderungen |
android | Android-Build- und Testmatrix | Android-relevante Änderungen |
Fail-Fast-Reihenfolge
Jobs sind so angeordnet, dass günstige Prüfungen fehlschlagen, bevor teure ausgeführt werden:preflightentscheidet, welche Lanes überhaupt existieren. Die Logikdocs-scopeundchanged-scopesind Schritte innerhalb dieses Jobs, keine eigenständigen Jobs.security-fast,check,check-additional,check-docsundskills-pythonschlagen schnell fehl, ohne auf die schwereren Artefakt- und Plattform-Matrix-Jobs zu warten.build-artifactsüberschneidet sich mit den schnellen Linux-Lanes, damit nachgelagerte Verbraucher starten können, sobald der gemeinsame Build bereit ist.- Danach fächern sich schwerere Plattform- und Laufzeit-Lanes auf:
checks-fast-core,checks-fast-extensions,extension-fast,checks,checks-windows,macos-node,macos-swiftundandroid.
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
| Runner | Jobs |
|---|---|
blacksmith-16vcpu-ubuntu-2404 | preflight, security-fast, build-artifacts, Linux-Prüfungen, Doku-Prüfungen, Python-Skills, android |
blacksmith-32vcpu-windows-2025 | checks-windows |
macos-latest | macos-node, macos-swift |