Zum Hauptinhalt springen
Version: 1.89.x (Q2 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

Architekturdiagramm für GitHub Preview Deployment

Entsprechende barrierefreie Textbeschreibung

Voraussetzungen

Bevor die Automatisierung eingerichtet wird, sollte Folgendes bereitstehen:

  • Codesphere-Konto
  • Admin-Zugriff auf das GitHub-Repository, das verbunden werden soll

Zukünftige API-Unterstützung

Wir arbeiten derzeit an einem dedizierten API-Token-System. Sobald dieses veröffentlicht ist, kann die Authentifizierung über Tokens anstelle von Konto-Passwörtern erfolgen.

Empfohlen: Verwendung eines Service-Kontos

Für Produktionsumgebungen empfehlen wir dringend die Verwendung eines Service-Kontos (ein dedizierter Maschinenbenutzer) anstelle eines persönlichen Entwicklerkontos. Dadurch wird verhindert, dass die Automatisierung ausfällt, wenn ein Teammitglied das Unternehmen verlässt.

  1. Service-Konto erstellen: Registriere ein neues Codesphere-Konto mit einem dedizierten E-Mail-Alias, z. B. [email protected].
  2. Zum Team einladen: Melde dich mit deinem Haupt-Codesphere-Konto an und lade dieses neue Service-Konto zu deinem Ziel-Team ein.
  3. Git verbinden: Melde dich als Service-Konto an und stelle sicher, dass es über die erforderlichen Berechtigungen für den Zugriff auf dein GitHub-Repository verfügt.
  4. Passwort festlegen: Da OAuth für Automatisierungen nicht verwendet werden kann, muss für dieses Service-Konto ein Passwort festgelegt sein (nutze den "Passwort vergessen"-Ablauf, falls die Registrierung über GitHub/Google erfolgt ist).

Wichtig: Passwort-Anforderung

GitHub Actions erfordert einen standardmäßigen E-Mail-/Passwort-Login. Wurde das Service-Konto über OAuth erstellt, muss ein Passwort festgelegt werden:

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

GitHub Secrets konfigurieren

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

  1. Öffne dein 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_EMAILDeine Codesphere-Login-E-Mail-Adresse.
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 deines 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://codesphere.com' # Optional: Change for specific regions/instances
env: | # Optional: Add environment variables below
MY_ENV=test
DEBUG=true

Teamname

Achte darauf, 'My Team' durch den exakten Namen deines Teams in Codesphere zu ersetzen (Groß-/Kleinschreibung beachten). Diesen findest du 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 deines Codesphere-Kontos.-
passwordJaDas Passwort deines Codesphere-Kontos.-
teamJaDer exakte Name deines Teams in Codesphere.-
planNeinDer Rechenplan für den Workspace.Boost
Optionen: Micro, Boost, Pro
onDemandNeinBei true verwendet der Workspace den Modus "Aus, wenn nicht verwendet", um Kosten zu sparen (aktiviert sich bei Zugriff automatisch).false
apiUrlNeinDie Basis-URL für deine Codesphere-API.https://codesphere.com
envNeinEine Liste von Umgebungsvariablen, die in den Workspace injiziert werden sollen (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 Entwicklungsdomain des Workspace.dev-domain

Format für Umgebungsvariablen

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

Deployment & Überprüfung

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

Erfolg

Es erscheint ein "Deploy"-Check mit einem direkten Link zu deiner Vorschau-Umgebung.

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

Bereinigung

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