Integrationen

Deploy auf Webspace

Die GitHub Action Sitequest-Software/sitequest-deploy-webspace-action lädt ein lokales Build-Verzeichnis als tar.gz hoch, entpackt es atomar in deinen Webspace und gibt eine Zusammenfassung zurück. Du musst keine SFTP-Schlüssel verwalten – ein API-Key reicht.

Was es macht

  1. Packt source auf dem Runner in ein einzelnes Archiv.
  2. Schickt das Archiv per POST an die Sitequest-API.
  3. Serverseitig wird es in ein Staging-Verzeichnis entpackt und atomar nach target unterhalb des Webspace-Home verschoben. Das vorherige Release wird dabei entfernt, sofern keep-old nicht gesetzt ist.

Inputs

Input Pflicht Default Beschreibung
api-key Ja Sitequest API-Key mit dem Scope webspace:manage. Am besten als Repository-Secret hinterlegen.
webspace-id Ja ID des Ziel-Webspace (steht in der Dashboard-URL).
source Nein dist Lokales Verzeichnis, das deployt werden soll.
target Nein public_html Zielverzeichnis unterhalb des Webspace-Home.
strip-components Nein 0 Anzahl führender Pfadkomponenten, die beim Entpacken entfernt werden (wird an tar --strip-components weitergereicht).
keep-old Nein false Wenn true, bleibt das vorherige Release unter <target>.old/ erhalten.
api-base Nein https://panel.site.quest API-Basis-URL überschreiben (z. B. für Staging).

Outputs

Output Beschreibung
bytes-uploaded Größe des hochgeladenen tar.gz-Archivs in Bytes.
files-deployed Anzahl der auf dem Ziel entpackten Dateien.
duration-ms Gesamtdauer des Deploys in Millisekunden.

Beispiel-Workflow

name: Deploy

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-node@v4
        with:
          node-version: 20

      - run: npm ci
      - run: npm run build

      - uses: Sitequest-Software/sitequest-deploy-webspace-action@v1
        with:
          api-key: ${{ secrets.SITEQUEST_API_KEY }}
          webspace-id: ${{ vars.SITEQUEST_WEBSPACE_ID }}
          source: dist
          target: public_html

Benötigter Scope

Der API-Key braucht den Scope webspace:manage. Lege ihn im Dashboard unter API / MCP (im Profilmenü) an.

Siehe auch