Problem

Dokumentation manuell von einer lokalen Maschine aus zu bauen und bereitzustellen ist fehleranfällig, anfällig für Umgebungs-Inkonsistenzen und Sicherheitsrisiken. Es schafft einen Engpass, da Deployments von der Verfügbarkeit einer Einzelperson abhängen.

Warum es wichtig ist

Continuous Deployment (CD) stellt sicher, dass Ihre Dokumentation stets mit Ihrer Software synchron ist. Wenn ein technisches Update gemergt wird, sollte es Benutzer innerhalb weniger Minuten erreichen. Automatisierung garantiert, dass jeder Build in einer sauberen, reproduzierbaren Umgebung stattfindet — Qualität und Zuverlässigkeit bleiben erhalten.

Ansatz

Verwenden Sie GitHub Actions, um die docmd-Build-Pipeline bei jedem Push oder Pull Request auszuführen. Die resultierenden statischen Assets können automatisch zu Hosting-Providern wie GitHub Pages, Cloudflare Pages oder containerisierten Umgebungen mit Docker deployt werden.

Implementierung

1. Standard GitHub-Pages-Workflow

Erstellen Sie .github/workflows/docs.yml, um den Build- und Deployment-Prozess zu automatisieren.

.github/workflows/docs.yml
name: Deploy Docs
on:
  push:
    branches: [main]

permissions:
  contents: read
  pages: write
  id-token: write

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
          cache: 'npm'

      - run: npm install
      
      # Site in das Verzeichnis 'site/' bauen
      - run: npx @docmd/core build

      - name: Upload Artifact
        uses: actions/upload-pages-artifact@v3
        with:
          path: site/

      - name: Deploy to GitHub Pages
        uses: actions/deploy-pages@v4

2. Containerisiertes Deployment (Docker)

Wenn Sie Ihre Dokumentation selbst hosten, verwenden Sie den Deploy-Befehl, um ein produktionsreifes Dockerfile und Server-Konfigurationen zu generieren.

# Docker- und Nginx-Konfigurationen lokal generieren
npx @docmd/core deploy --docker --nginx

Sie können Ihre GitHub Action aktualisieren, um dieses Docker-Image in eine Registry (wie Docker Hub oder GitHub Container Registry) zu bauen und zu pushen, wann immer Sie eine neue Version releasen.

3. Pull-Request-Vorschauen

Erweitern Sie Ihren Workflow, um für jeden Pull Request ephemere Vorschau-Umgebungen zu generieren. Das erlaubt Reviewern, die gerenderte Dokumentation zu sehen, bevor sie in den Main-Branch gemergt wird. Weitere Details finden Sie im Previewing-Changes-Leitfaden.

Abwägungen

Automatisierte CI/CD erfordert initialen Setup-Aufwand und die Verwaltung von Secrets (z. B. API-Tokens). Die langfristigen Vorteile eines “Hands-off”-Deployment-Prozesses — einschließlich reduzierter menschlicher Fehler und schnellerer Update-Zyklen — überwiegen jedoch die initiale Investition bei Weitem. Für große Sites stellen Sie sicher, dass Ihr Workflow nur dann ausgelöst wird, wenn sich Dateien in Ihrem Dokumentations-Verzeichnis ändern, um CI-Minuten zu sparen.