Releasing und Docs-Deploy
Release-Prozess
Releases werden von Release Please verwaltet.
Übergeordneter Flow:
- Pushes an
mainlösen Release Please-Workflow aus - Release Please öffnet oder aktualisiert einen Release-PR
- Zusammenführen des Release-PRs erstellt ein Release/Tag
- Publish-Job führt Qualitätstore aus und veröffentlicht dann das npm-Paket
Obligatorische Qualitätstore
Release- und CI-Workflows setzen beide durch:
npm run lint
npm run test:coverage
npm run build
npm run docs:build
Publishing-Workflows
Es gibt zwei Publishing-Pfade:
| Workflow | Auslöser | Zweck |
|---|---|---|
release-please.yml | Push an main mit Release-Erstellung | Standard-Automatisiertes Release + Publish |
npm-publish.yml | manueller Dispatch | Kontrolliertes manuelles Publish mit Tag-Validierung |
Manueller Publish-Workflow validiert:
- Tag-Format (
vX.Y.Z) - Tag-Commit-Abstammung auf
main - Paketname und Versionskonsistenz
- vollständige Qualitätstore vor Publish
Docs-Deployment
Docs werden mit Docusaurus gebaut und über docs-pages.yml auf GitHub Pages deployed.
Auslöserbedingungen:
- Push an
main, derdocs-site/**ändert - Push an
main, der die Docs-Workflow-Datei ändert - manueller Workflow-Dispatch
Pipeline-Schritte:
- Docs-Site-Abhängigkeiten installieren
- Statische Docs bauen (
docs-site/build) - Pages-Artefakt hochladen
- Mit GitHub Pages-Action deployen
Lokaler Vorabflug vor Release/Docs-Änderungen
npm ci
npm --prefix docs-site ci
npm run lint
npm run test:coverage
npm run build
npm run docs:build
Fehlerbehebung
| Symptom | Wahrscheinliche Ursache | Lösung |
|---|---|---|
| Release-PR nicht erstellt | Keine releasefähigen konventionellen Änderungen erkannt | Commit-Format und Release Please-Konfiguration bestätigen |
| Publish-Job blockiert | Ein oder mehrere Qualitätstore fehlgeschlagen | Lokal nachbilden, beheben und erneut ausführen |
| Docs-Deploy nicht ausgelöst | Geänderte Dateien außerhalb der Auslöserpfade | Stellen Sie sicher, dass docs-site oder Workflow-Pfad geändert wurde, oder führen Sie manuellen Dispatch aus |
| Manuelles Publish abgelehnt | Tag/Version/Abstammungs-Validierung fehlgeschlagen | Verwenden Sie einen gültigen vX.Y.Z-Tag auf einem von main erreichbaren Commit |