ci: GitHub-Pages-Deployment via Actions-Workflow
Offizieller Actions-Weg (upload-pages-artifact + deploy-pages) mit permissions pages/id-token und concurrency-Gruppe "pages"; Trigger: Push auf main + workflow_dispatch. Vitest-Step als Platzhalter auskommentiert (Tests folgen, TASKS.md Phase 1). Site-Aufbau: frontend/index.html an die Wurzel-URL, dazu docs/brand/ (Favicon) und LICENSE (MIT-Link im Footer). Die ../-Pfade der Quelle zeigten von der Wurzel aus über die Site hinaus; statt den Editor zu aendern, zieht der Workflow sie nur auf der Site-Kopie per sed gerade (Editor-Quelle bleibt unveraendert, lokal weiter nutzbar). backend/ und uebrige docs/ werden nicht veroeffentlicht. Doku: README-Abschnitt "Deployment" (inkl. einmaliger Settings- Umstellung auf Source "GitHub Actions", Repo muss oeffentlich sein), TASKS.md-Rubrik "Deployment" abgehakt, DECISIONS D16. Hinweis: der Auftrag nannte "D15", das war aber schon fuer den kompakten Modus vergeben -> als D16 angelegt. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
340c7e7195
commit
fccd32190a
@@ -0,0 +1,78 @@
|
|||||||
|
name: Deploy to GitHub Pages
|
||||||
|
|
||||||
|
# Veröffentlicht den Frontend-Editor als statische Seite auf GitHub Pages.
|
||||||
|
# Einmalige Voraussetzung: Repo-Settings → Pages → Source = "GitHub Actions"
|
||||||
|
# (Repo muss dafür öffentlich sein). Siehe README.md, Abschnitt „Deployment".
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
# Nur Leserechte auf den Code, plus die für die Pages-Deployment-Actions
|
||||||
|
# nötigen Sonderrechte: pages (Deployment schreiben) und id-token (OIDC-Token,
|
||||||
|
# das actions/deploy-pages zur Authentifizierung braucht).
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
pages: write
|
||||||
|
id-token: write
|
||||||
|
|
||||||
|
# Läuft immer nur ein Deployment gleichzeitig; neue Pushes warten, laufende
|
||||||
|
# werden nicht abgebrochen (cancel-in-progress: false), damit ein Deploy nicht
|
||||||
|
# mittendrin unterbrochen wird.
|
||||||
|
concurrency:
|
||||||
|
group: pages
|
||||||
|
cancel-in-progress: false
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
# Platzhalter für spätere Vitest-Läufe (Tests existieren noch nicht,
|
||||||
|
# siehe docs/TASKS.md, Phase 1). Bei Aktivierung: Node einrichten und
|
||||||
|
# Tests ausführen — schlägt der Testlauf fehl, wird nicht deployt.
|
||||||
|
# - name: Node einrichten
|
||||||
|
# uses: actions/setup-node@v4
|
||||||
|
# with:
|
||||||
|
# node-version: 20
|
||||||
|
# cache: npm
|
||||||
|
# - name: Abhängigkeiten installieren
|
||||||
|
# run: npm ci
|
||||||
|
# - name: Tests
|
||||||
|
# run: npm test
|
||||||
|
|
||||||
|
# Site-Ordner zusammenstellen: index.html an die Wurzel-URL, dazu die
|
||||||
|
# vom Editor referenzierten Dateien (Favicon aus docs/brand/, LICENSE für
|
||||||
|
# den MIT-Link im Footer). Die Editor-Quelle bleibt unverändert — die
|
||||||
|
# ../-Pfade werden nur auf der Kopie im Site-Ordner geradegezogen, weil
|
||||||
|
# sie von der Wurzel-URL aus sonst über die Site hinauszeigen würden.
|
||||||
|
- name: Site zusammenstellen
|
||||||
|
run: |
|
||||||
|
mkdir -p site/docs/brand
|
||||||
|
sed -e 's#\.\./docs/brand/#docs/brand/#g' \
|
||||||
|
-e 's#\.\./LICENSE#LICENSE#g' \
|
||||||
|
frontend/index.html > site/index.html
|
||||||
|
cp docs/brand/* site/docs/brand/
|
||||||
|
cp LICENSE site/LICENSE
|
||||||
|
|
||||||
|
- name: Pages-Konfiguration
|
||||||
|
uses: actions/configure-pages@v5
|
||||||
|
|
||||||
|
- name: Artefakt hochladen
|
||||||
|
uses: actions/upload-pages-artifact@v3
|
||||||
|
with:
|
||||||
|
path: site
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
needs: build
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
environment:
|
||||||
|
name: github-pages
|
||||||
|
url: ${{ steps.deployment.outputs.page_url }}
|
||||||
|
steps:
|
||||||
|
- name: Auf GitHub Pages deployen
|
||||||
|
id: deployment
|
||||||
|
uses: actions/deploy-pages@v4
|
||||||
@@ -43,6 +43,23 @@ Elemente einblenden.
|
|||||||
- `docs/design/` — Design-Herleitung der Marke
|
- `docs/design/` — Design-Herleitung der Marke
|
||||||
- `CLAUDE.md` — Projektkontext für Claude Code
|
- `CLAUDE.md` — Projektkontext für Claude Code
|
||||||
|
|
||||||
|
## Deployment
|
||||||
|
|
||||||
|
Der Editor wird per GitHub Actions als statische Seite auf **GitHub Pages**
|
||||||
|
veröffentlicht (Workflow: `.github/workflows/pages.yml`). Ausgelöst bei jedem
|
||||||
|
Push auf `main` sowie manuell (`workflow_dispatch`).
|
||||||
|
|
||||||
|
Der Workflow stellt einen Site-Ordner zusammen: `frontend/index.html` liegt als
|
||||||
|
`index.html` an der Wurzel-URL, dazu die vom Editor referenzierten Dateien
|
||||||
|
(`docs/brand/` fürs Favicon, `LICENSE` für den MIT-Link im Footer). Die
|
||||||
|
`../`-Pfade der Editor-Quelle werden dabei nur auf der Kopie geradegezogen — die
|
||||||
|
Quelldatei bleibt unverändert. `backend/` und die übrigen `docs/` werden nicht
|
||||||
|
veröffentlicht.
|
||||||
|
|
||||||
|
**Einmalige Einrichtung:** In den Repo-Settings unter **Pages** als **Source**
|
||||||
|
„GitHub Actions" wählen. Das Repo muss dafür **öffentlich** sein (GitHub Pages
|
||||||
|
via Actions ist für private Repos nur mit kostenpflichtigem Plan verfügbar).
|
||||||
|
|
||||||
## Lizenz
|
## Lizenz
|
||||||
|
|
||||||
MIT — siehe [LICENSE](LICENSE). © 2026 Michael Hönnig.
|
MIT — siehe [LICENSE](LICENSE). © 2026 Michael Hönnig.
|
||||||
|
|||||||
@@ -102,3 +102,23 @@ durchgezogene Hauptlinie optisch mit „all of“ konkurrieren. Grau tritt zurü
|
|||||||
die gestrichelte Führung bleibt eindeutig. D12/BRAND — „durchgezogen = und,
|
die gestrichelte Führung bleibt eindeutig. D12/BRAND — „durchgezogen = und,
|
||||||
gestrichelt = oder“ — gilt für das **Markenzeichen** unverändert (Logo behält
|
gestrichelt = oder“ — gilt für das **Markenzeichen** unverändert (Logo behält
|
||||||
Petrol); im **Diagramm** trägt allein der Linienstil die Gate-Codierung.
|
Petrol); im **Diagramm** trägt allein der Linienstil die Gate-Codierung.
|
||||||
|
|
||||||
|
## D16 — Deployment über GitHub Pages via Actions-Workflow
|
||||||
|
Der Editor ist eine einzelne statische Datei (D11) — GitHub Pages genügt, kein
|
||||||
|
eigener Server nötig. Veröffentlicht wird über den offiziellen Actions-Weg
|
||||||
|
(`actions/upload-pages-artifact` + `actions/deploy-pages`, `permissions:
|
||||||
|
pages/id-token`, `concurrency: pages`) statt über den `gh-pages`-Branch: kein
|
||||||
|
Zusatzbranch, OIDC statt Deploy-Key, Trigger bei Push auf `main` und manuell.
|
||||||
|
Der Test-Step (Vitest, Phase 1) ist als Platzhalter auskommentiert vorbereitet.
|
||||||
|
|
||||||
|
**Pfad-Entscheidung:** `frontend/index.html` referenziert Favicon und
|
||||||
|
MIT-Lizenz relativ mit `../` (`../docs/brand/favicon.svg`, `../LICENSE`) — von
|
||||||
|
der Wurzel-URL aus zeigten diese über die Site hinaus. Statt die Quelldatei zu
|
||||||
|
ändern (D14/CLAUDE: „Editor nicht refaktorieren“) zieht der Workflow die
|
||||||
|
`../`-Pfade **nur auf der Site-Kopie** gerade (`sed`) und legt die referenzierten
|
||||||
|
Dateien passend ab: `index.html` an die Wurzel, `docs/brand/` und `LICENSE`
|
||||||
|
daneben. So bleibt die Quelle unverändert (lokal weiter per `file://` und
|
||||||
|
Dev-Server nutzbar), und veröffentlicht wird nur das Nötige — `backend/` und die
|
||||||
|
übrigen `docs/` bleiben außen vor.
|
||||||
|
|
||||||
|
(Nummerierung: D15 war bereits für den kompakten Modus vergeben, daher D16.)
|
||||||
|
|||||||
@@ -19,6 +19,10 @@ Abhaken beim Erledigen; neue Aufgaben unten anfügen.
|
|||||||
- [ ] Druck-Stylesheet (Diagramm ohne Editor-Panel).
|
- [ ] Druck-Stylesheet (Diagramm ohne Editor-Panel).
|
||||||
- [ ] Fehlertolerantes Parsen weiter ausbauen (unbekannte Statuszeichen melden).
|
- [ ] Fehlertolerantes Parsen weiter ausbauen (unbekannte Statuszeichen melden).
|
||||||
|
|
||||||
|
## Deployment
|
||||||
|
- [x] GitHub-Pages-Workflow angelegt (`.github/workflows/pages.yml`,
|
||||||
|
siehe docs/DECISIONS.md D16).
|
||||||
|
|
||||||
## Phase 3 — Integrationen (siehe docs/ROADMAP.md)
|
## Phase 3 — Integrationen (siehe docs/ROADMAP.md)
|
||||||
- [ ] Backend-Gerüst per Spring Initializr in `backend/` anlegen
|
- [ ] Backend-Gerüst per Spring Initializr in `backend/` anlegen
|
||||||
(Kotlin, Gradle Kotlin DSL, JDK 21; Konventionen: backend/CLAUDE.md).
|
(Kotlin, Gradle Kotlin DSL, JDK 21; Konventionen: backend/CLAUDE.md).
|
||||||
|
|||||||
Reference in New Issue
Block a user