Zum Hauptinhalt springen
Version: 1.99.x (Q3 26)

GitHub Preview Deployments

info

Diese Anleitung erklärt, wie automatisch ein Preview Codesphere Workspace für jeden Pull Request (PR) erstellt wird, der in deinem GitHub-Repository geöffnet wird. Dadurch kann dein Team Änderungen in einer Live-Umgebung überprüfen, bevor sie zusammengeführt werden.

Architekturübersicht

Diagramm der GitHub-Preview-Deployment-Architektur

Entsprechende barrierefreie Textbeschreibung

Voraussetzungen​

Bevor die Automatisierung eingerichtet wird, sollte Folgendes vorbereitet sein:

  • Codesphere-Konto
  • Admin-Zugriff auf das GitHub-Repository, das verbunden werden soll
Zukünftige API-Unterstützung

Derzeit wird an einem dedizierten API-Token-System gearbeitet. Sobald dieses veröffentlicht ist, kann die Authentifizierung über Token statt über Kontopasswörter erfolgen.

Empfohlen: Verwendung eines Service Accounts​

Für produktive Umgebungen wird dringend empfohlen, einen Service Account (einen dedizierten Maschinen-Benutzer) anstelle eines persönlichen Entwicklerkontos zu verwenden. Dadurch wird verhindert, dass die Automatisierung unterbrochen wird, wenn ein Teammitglied das Unternehmen verlässt.

  1. Service Account erstellen: Registriere ein neues Codesphere-Konto mit einem dedizierten E-Mail-Alias, z. B. [email protected].
  2. Zum Team einladen: Melde dich in deinem Haupt-Codesphere-Konto an und lade diesen neuen Service Account zu deinem Ziel-Team ein.
  3. Git verbinden: Melde dich als Service Account an und stelle sicher, dass er über die notwendigen Berechtigungen verfügt, um auf dein GitHub-Repository zuzugreifen.
  4. Passwort festlegen: Da OAuth für die Automatisierung nicht verwendet werden kann, muss für diesen Service Account ein Passwort festgelegt sein (nutze den "Passwort vergessen"-Ablauf, falls die Registrierung über GitHub/Google erfolgte).
Wichtig: Passwortanforderung

GitHub Actions benötigt einen Standard-Login mit E-Mail und Passwort. Wurde der Service Account über OAuth erstellt, muss ein Passwort festgelegt werden:

  1. Von Codesphere abmelden.
  2. Auf dem Login-Bildschirm auf Passwort vergessen klicken.
  3. Den Anweisungen in der E-Mail folgen, um ein Passwort für den Service Account festzulegen.

GitHub Secrets konfigurieren​

Damit GitHub Actions sicher mit Codesphere kommunizieren kann, müssen die Zugangsdaten als verschlüsselte Secrets gespeichert werden.

  1. Öffne das Repository auf GitHub.
  2. Navigiere zu Settings > Secrets and Variables > Actions.
  3. Klicke auf New repository secret und füge die folgenden zwei Secrets hinzu:
Secret-NameWert
CODESPHERE_EMAILDie E-Mail-Adresse für den Codesphere-Login.
CODESPHERE_PASSWORDDas Passwort, das im Schritt "Voraussetzungen" festgelegt wurde.

Workflow-Datei hinzufügen​

Es muss eine GitHub Actions Workflow-Datei erstellt werden, die auf Pull-Request-Ereignisse reagiert.

  1. Erstelle das Verzeichnis .github/workflows/ im Root-Verzeichnis des Repositorys.
  2. Erstelle eine Datei mit dem Namen main.yml in diesem Verzeichnis.
  3. Füge die folgende Konfiguration ein:
name: Codesphere Preview Deployment

on:
workflow_dispatch:
pull_request:
types: [closed, opened, reopened, synchronize]

permissions:
contents: read
pull-requests: read
deployments: write

jobs:
deploy:
name: Deploy to Codesphere
# Prevent multiple workspaces from being created for the same PR
concurrency: codesphere-preview-${{ github.event.pull_request.number }}
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v6

- name: Deploy Preview
uses: codesphere-cloud/gh-action-deploy@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
email: ${{ secrets.CODESPHERE_EMAIL }}
password: ${{ secrets.CODESPHERE_PASSWORD }}
team: 'My Team' # <--- REPLACE with your Team Name
plan: 'Boost' # Options: Micro, Boost, Pro
onDemand: 'true' # 'true' enables cost-saving standby mode
deploymentLinkType: 'preview' # Options: preview, dev-domain
apiUrl: 'https://cloud.codesphere.com' # replace with your instance URL
sharedVaultName: 'my-shared-vault' # Optional: reuse a team shared vault's secrets across preview deployments
env: | # Optional: Add environment variables below
MY_ENV=test
DEBUG=true
Teamname

Stelle sicher, dass 'My Team' durch den exakten Namen deines Teams in Codesphere ersetzt wird (Groß-/Kleinschreibung beachten). Dieser findet sich in der oberen linken Ecke der Codesphere-Benutzeroberfläche.

Konfigurationsreferenz​

Die folgenden Eingaben werden von der Action codesphere-cloud/gh-action-deploy unterstützt:

OptionErforderlichBeschreibungStandard / Werte
emailJaDie E-Mail-Adresse des Codesphere-Kontos.-
passwordJaDas Passwort des Codesphere-Kontos.-
teamJaDer exakte Name des Teams in Codesphere.-
planNeinDer Compute-Plan für den Workspace.Boost
Optionen: Micro, Boost, Pro
onDemandNeinBei true verwendet der Workspace den Modus "Off when unused", um Kosten zu sparen (wacht bei Zugriff automatisch auf).false
apiUrlNeinDie Basis-URL für die Codesphere-API.https://cloud.codesphere.com
envNeinEine Liste von Umgebungsvariablen, die in den Workspace injiziert werden (Format Key=Value).-
deploymentLinkTypeNeinSteuert das Format des Deployment-Links, der im PR gepostet wird. preview öffnet eine interaktive Vorschau, in der Reviewer Frontend-Kommentare hinterlassen können. dev-domain verlinkt direkt auf die Development-Domain des Workspace.dev-domain
sharedVaultNameNeinName eines Team Shared Vaults, der dem Workspace zugeordnet wird. Ist dies gesetzt, verwendet das Preview-Deployment die Secrets des Vaults, anstatt einen eigenen isolierten Satz zu pflegen, sodass Secrets einmalig gepflegt und über alle Preview-Workspaces hinweg geteilt werden können. Der Shared Vault muss bereits im Team konfiguriert sein. Siehe Secret Management → Shared Vaults.-
Format der Umgebungsvariablen

Verwende eine dotenv-ähnliche Definition der Umgebungsvariablen. Details siehe https://www.npmjs.com/package/dotenv.

Deployen & Überprüfen​

  1. Committe und pushe die Datei main.yml.
  2. Öffne einen neuen Pull Request in deinem Repository.
  3. Prüfe den PR-Statusbereich.
Erfolg

Ein "Deploy"-Check mit einem direkten Link zur Preview-Umgebung wird angezeigt.

Ansicht des GitHub-Pull-Request-Status mit dem Preview-Deployment-Check und Link.

Bereinigung

Wird der Pull Request geschlossen oder zusammengeführt, fährt dieser Workflow den Preview-Workspace automatisch herunter und löscht ihn, damit keine Kosten für ungenutzte Ressourcen entstehen.