Bitbucket Preview Deployment
Diese Anleitung erklärt, wie automatisch ein Preview Codesphere Workspace für jeden Pull Request (PR) erstellt wird, der in eurem Bitbucket-Repository geöffnet wird. Dadurch kann euer Team Änderungen in einer Live-Umgebung überprüfen, bevor sie gemerged werden.
Voraussetzungen
Bevor die Automatisierung eingerichtet wird, stellt sicher, dass Folgendes vorhanden ist:
- Codesphere-Account
- Admin-Zugriff auf das Bitbucket-Repository, das verbunden werden soll
Zukünftiger API-Support
Wir arbeiten derzeit an einem dedizierten API-Token-System. Sobald dieses verfügbar ist, könnt ihr euch mit Tokens anstelle von Account-Passwörtern authentifizieren.
Empfehlung: Service Account verwenden
Für Produktionsumgebungen empfehlen wir dringend, einen Service Account (einen dedizierten Machine User) anstelle eines persönlichen Entwickler-Accounts zu verwenden. Dies verhindert, dass die Automatisierung unterbrochen wird, wenn ein Teammitglied das Unternehmen verlässt.
- Service Account erstellen: Registriert euch für einen neuen Codesphere-Account mit einem dedizierten E-Mail-Alias, z. B.
[email protected]. - Zum Team einladen: Meldet euch bei eurem Haupt-Codesphere-Account an und ladet diesen neuen Service Account zu eurem Ziel-Team ein.
- Bitbucket verbinden: Meldet euch als Service Account an und stellt sicher, dass er die notwendigen Berechtigungen hat, um auf euer Bitbucket-Repository zuzugreifen.
- Passwort setzen: Da OAuth für die Automatisierung nicht verwendet werden kann, stellt sicher, dass für diesen Service Account ein Passwort gesetzt ist (nutzt den "Forgot Password"-Ablauf, falls ihr euch über Bitbucket/Google registriert habt).
Wichtig: Passwort-Anforderung
Bitbucket erfordert einen Standard-Login mit E-Mail/Passwort. Wenn euer Service Account über OAuth erstellt wurde, müsst ihr ein Passwort festlegen:
- Meldet euch von Codesphere ab.
- Klickt auf Forgot Password auf dem Login-Bildschirm.
- Folgt den Anweisungen in der E-Mail, um ein Passwort für den Service Account festzulegen.
Preview Deployments einrichten
- Falls noch nicht erfolgt, erstellt einen Codesphere-User mit Benutzername & Passwort (OAuth funktioniert nicht für die Nutzung von Bitbucket Pipelines) – wir empfehlen, dafür einen separaten Sysadmin-User zu erstellen.
- Meldet euch mit eurem neuen User an und verbindet ihn mit Bitbucket, indem ihr auf den Button "+ Create Workspace" klickt
und im "Create Workspace"-Modal "Go to Bitbucket Login" auswählt.
Nach der Anmeldung könnt ihr aus euren verfügbaren Repositories auswählen.
- Stellt sicher, dass der verbundene Bitbucket-Account Zugriff auf das Repository hat, für das ihr die Preview Deployments einrichtet.
- Stellt sicher, dass das Repository eine Codesphere CI-Pipeline mit Anweisungen enthält, wie eure App gebaut und ausgeführt wird, die eure Pipeline dann nutzen kann, um euer Preview Deployment zu erstellen.
- Aktiviert Pipelines für euren Bitbucket-Account (erfordert eine aktivierte 2FA).
- Erstellt einen Bitbucket Access Token mit Lese- und Schreibzugriff auf das Repository und Pull Requests.
- Navigiert zu Repository Settings > Pipelines > Repository Variables und fügt die folgenden Secrets zu den Umgebungsvariablen des Repositories hinzu – achtet darauf, die Checkbox für "secured" zu aktivieren. Weitere Informationen dazu, welche Variablen gesetzt werden können, findet ihr unten.

- Erstellt eine Datei
bitbucket-pipelines.ymlim Root-Verzeichnis eures Repositories und fügt den folgenden Code hinzu:
image: atlassian/default-image:3
pipelines:
pull-requests:
'**':
- step:
deployment: Test
script:
- pipe: docker://ghcr.io/codesphere-cloud/codesphere-monorepo/integrations/bitbucket-ci:latest
variables:
API_URL: https://cloud.codesphere.com # replace with your instance URL
ACCESS_TOKEN: $ACCESS_TOKEN
EMAIL: $CODESPHERE_EMAIL
PASSWORD: $CODESPHERE_PASSWORD
TEAM: My Team
PLAN: Micro
DEPLOYMENT_LINK_TYPE: preview # or 'dev-domain'
VPN_CONFIG: vpnConfigName
ENV: |
testing=abc
Ihr könnt eure Pipeline so konfigurieren, dass sie andere Trigger als nur Pull Requests hat. Weitere Informationen zu den verfügbaren Pipeline-Einstellungen von Bitbucket findet ihr hier.
Verfügbare Variablen
Im Folgenden findet ihr die Variablen, die ihr für eure Repository-Variablen verwenden könnt.
(*) = erforderliche Variable.
| Variable | Verwendung |
|---|---|
| API_URL (*) | Die Basis-URL für eure Codesphere-Instanz einschließlich https:// z. B. https://cloud.codesphere.com |
| ACCESS_TOKEN (*) | Der Access Token, den ihr für das Repository erstellt habt. Es wird empfohlen, eine sichere Repository-Variable zu verwenden. |
| EMAIL (*) | E-Mail-Adresse des Codesphere-Users |
| PASSWORD (*) | Passwort des Codesphere-Users. Es wird empfohlen, eine sichere Repository-/Workspace-Variable zu verwenden. |
| TEAM (*) | Name des Codesphere Teams. |
| PLAN | Workspace-Plan des Workspace, der erstellt wird. Verfügbare Optionen: Micro, Boost, Pro. Standard: Boost. |
| ON_DEMAND | Legt fest, ob dieses Preview Deployment im "always on"- oder "off when unused"-Deployment-Modus bereitgestellt werden soll. Verfügbare Optionen: true, false |
| ENV | Setzt Umgebungsvariablen in eurem Workspace. Definiert sie auf dieselbe Weise, wie ihr es bei der Verwendung von dotenv in einem Node.js-Projekt tun würdet. Details siehe https://www.npmjs.com/package/dotenv. |
| VPN_CONFIG | Wenn ihr für dieses Team eine VPN-Konfiguration erstellt habt, könnt ihr sie hier über ihren Konfigurationsnamen referenzieren. Dadurch werden erstellte Preview Deployments mit dieser VPN-Verbindung verbunden. |
| DEPLOYMENT_LINK_TYPE | Steuert das Format des Deployment-Links, der im PR-Kommentar 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. Standard: dev-domain. |
Zusätzliche Informationen
Nachdem ihr dieser Anleitung gefolgt seid, wird eure Pipeline bei jedem Pull Request ausgeführt und erstellt ein Preview Deployment, mit dem ihr eure Änderungen überprüfen könnt. Sie fügt eurem Pull Request einen neuen Kommentar hinzu, der die Domain zu eurem Preview Deployment enthält.