Version: Weekly Build
Gitlab Preview Deployment
Phase 1: Vorbereitung des Accounts
- Lege ein Passwort für dein Codesphere-Konto fest (erforderlich für den API-Zugriff).
- Hinweis: Falls du dich über Google/GitHub angemeldet hast, nutze den Link „Passwort vergessen“, um ein eigenständiges Passwort festzulegen.
- Verbinde dein GitLab-Konto mit Codesphere.
- Aktion: Klicke auf „+ New Workspace“ und wähle „Connect GitLab“, um die Autorisierung durchzuführen.
- Erstelle ein GitLab Project Access Token.
- Scopes: Wähle api.
- Rolle: Wähle Developer.
- Kopieren: Speichere dieses Token sofort; du benötigst es für die Secrets.
Phase 2: Konfiguration der GitLab Secrets
- Öffne dein Repository in GitLab.
- Navigiere zu Settings > CI/CD > Variables.
- Füge die folgenden Variablen hinzu (entferne den Haken bei „Protect variable“, falls dein Branch nicht geschützt ist):
CODESPHERE_API_TOKEN: Dein Codesphere API-Token, generiert unter Account Settings > API Keys (empfohlen).CI_ACCESS_TOKEN: Das in Phase 1 erstellte Project Access Token.CODESPHERE_EMAIL: (Veraltet) Deine Codesphere-Login-E-Mail-Adresse. Verwende stattdessenCODESPHERE_API_TOKEN.CODESPHERE_PASSWORD: (Veraltet) Dein Codesphere-Login-Passwort. Verwende stattdessenCODESPHERE_API_TOKEN.
Phase 3: Konfiguration der Pipeline
- Erstelle eine
.gitlab-ci.yml-Datei im Root-Verzeichnis deines Repositories. - Füge die folgende Konfiguration ein:
workflow:
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
stages:
- deploy
codesphere-deploy:
image: ghcr.io/codesphere-cloud/codesphere-monorepo/integrations/gitlab-ci:latest
stage: deploy
script:
- node /app/server.js
variables:
API_URL: https://cloud.codesphere.com/ # replace with your instance URL
ACCESS_TOKEN: $CI_ACCESS_TOKEN
API_TOKEN: $CODESPHERE_API_TOKEN
TEAM: 'My Team' # REPLACE with your exact Team Name
PLAN: 'Boost' # Options: Micro, Boost, Pro
ON_DEMAND: 'true' # 'true' enables cost-saving standby mode
DEPLOYMENT_LINK_TYPE: 'preview' # Optional: 'preview' or 'dev-domain'
SHARED_VAULT_NAME: 'my-shared-vault' # Optional: reuse a team shared vault's secrets across preview deployments
CI_PROFILE: 'my-ci-profile' # Optional: CI profile to use instead of the default
CODESPHERE_RESTRICTED: 'false' # Optional: 'true' restricts the dev domain to team members only
CODESPHERE_BASE_IMAGE: 'my-base-image' # Optional: overrides the workspace's base image
VPN_CONFIG: 'my-vpn-config' # Optional: attach the workspace to an existing team VPN config
GIT_CLONE_DEPTH: '1' # Optional: shallow-clone depth for the checkout
GIT_SKIP_LFS: 'false' # Optional: 'true' skips downloading Git LFS files
GIT_RECURSE_SUBMODULES: 'true' # Optional: 'false' skips cloning submodules
TLS_ALLOW_UNAUTHORIZED: 'false' # Optional: 'true' disables TLS certificate verification
ENV: | # Optional: Add environment variables below
MY_ENV=test
Shared Vaults
SHARED_VAULT_NAME verbindet einen bestehenden Team Shared Vault mit dem Preview Deployment, sodass dessen Secrets wiederverwendet werden, anstatt einen eigenen isolierten Satz zu pflegen. Der Shared Vault muss bereits im Team konfiguriert sein. Siehe Secret Management → Shared Vaults.
Verfügbare Variablen
Die folgenden Variablen können unter dem Schlüssel variables des Jobs codesphere-deploy gesetzt werden.
(*) = erforderliche Variable.
| Variable | Verwendung |
|---|---|
| API_URL (*) | Die Basis-URL deiner Codesphere-Instanz inklusive https://, z. B. https://cloud.codesphere.com. |
| ACCESS_TOKEN (*) | Das in Phase 1 erstellte GitLab Project Access Token. |
| API_TOKEN | Empfohlen. Dein Codesphere API-Token, generiert unter Account Settings > API Keys. Wenn diese Variable gesetzt ist, werden EMAIL und PASSWORD ignoriert. |
(Veraltet) E-Mail-Adresse des Codesphere-Benutzers. Verwende stattdessen API_TOKEN. | |
| PASSWORD | (Veraltet) Passwort des Codesphere-Benutzers. Verwende stattdessen API_TOKEN. |
| TEAM (*) | Name des Codesphere-Teams. |
| PLAN | Workspace-Plan des zu erstellenden Workspace. Verfügbare Optionen: Micro, Boost, Pro. Standard: Boost. |
| ON_DEMAND | Legt fest, ob dieses Preview Deployment im Always-on- oder im Off-when-unused-Deployment-Modus bereitgestellt werden soll. Verfügbare Optionen: true, false. |
| ENV | Setzt Umgebungsvariablen in deinem Workspace. Definiere sie auf dieselbe Weise wie bei der Verwendung von dotenv in einem Node.js-Projekt. Details siehe https://www.npmjs.com/package/dotenv. |
| DEPLOYMENT_LINK_TYPE | Steuert das Format des Deployment-Links, der im Merge Request 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. |
| SHARED_VAULT_NAME | Name eines Team Shared Vaults, der mit dem Workspace verbunden werden soll. Wenn gesetzt, verwendet das Preview Deployment die Secrets des Vaults, anstatt einen eigenen isolierten Satz zu pflegen. Der Shared Vault muss bereits im Team konfiguriert sein. Siehe Secret Management → Shared Vaults. |
| CI_PROFILE | Name des CI-Profils, das für das Deployment verwendet werden soll. Standardmäßig wird die ci.yml des Repositories verwendet. |
| CODESPHERE_RESTRICTED | Wenn true, ist die Development-Domain des Workspace nur für Teammitglieder erreichbar, anstatt öffentlich zu sein. Standard: false. |
| CODESPHERE_BASE_IMAGE | Überschreibt das Base Image, aus dem der Workspace erstellt wird. Standardmäßig wird das Standard-Image des Plans verwendet. |
| VPN_CONFIG | Falls für dieses Team eine VPN-Konfiguration erstellt wurde, kann sie hier über ihren Konfigurationsnamen referenziert werden. Dadurch wird das Preview Deployment mit dieser VPN-Verbindung verknüpft. |
| GIT_CLONE_DEPTH | Shallow-Clone-Tiefe, die beim Auschecken des Repositories verwendet wird. Standardmäßig wird die vollständige Historie geklont. |
| GIT_SKIP_LFS | Wenn true, wird das Herunterladen (Smudging) von Git-LFS-Dateien beim Klonen übersprungen. Standard: false. |
| GIT_RECURSE_SUBMODULES | Wenn false, werden Submodule nicht initialisiert und geklont. Standard: true. |
| TLS_ALLOW_UNAUTHORIZED | Wenn true, wird die TLS-Zertifikatsprüfung bei der Kommunikation mit der Codesphere-API deaktiviert. Dies sollte nur bei selbst gehosteten Instanzen mit selbstsignierten Zertifikaten verwendet werden. Standard: false. |
Phase 4: Deployment & Überprüfung
- Committe und pushe die
.gitlab-ci.yml-Datei. - Öffne einen neuen Merge Request in deinem Repository.
- Prüfe den Kommentarbereich deines Merge Requests.
- Erfolg: Codesphere postet automatisch einen Kommentar mit dem direkten Link zu deinem neuen Preview Deployment.