English | Deutsch

Integrationen von GitLab und Codesphere

Verbinden Sie Ihr GitLab-Konto und Ihre Repositories mit Ihrem CS-Konto, um automatisch Preview Deployments für Ihre Pull Requests zu erstellen.

December 14, 2023 3 Min Lesezeit
Integrationen von GitLab und Codesphere
Integrationen von GitLab und Codesphere

Simon Pfeiffer

Head of Product @ Codesphere

GitLab ist ein Open-Source-Versionskontroll- und Hosting-Dienst für Git-Repositorys. Im Gegensatz zu den anderen großen Anbietern im Bereich der Remote-Git-Dienste können Sie GitLab selbst auf Ihren eigenen Servern hosten. GitLab bietet auch Funktionen für die kontinuierliche Integration und Bereitstellung (CI/CD).

Arbeiten mit GitLab in Codesphere

Melden Sie sich mit Ihrem GitLab-Konto bei Codesphere an, checken Sie Repositories aus und erstellen Sie automatisch Preview Deployments für jede Merge-Anfrage.

Sie können auch ein bestehendes Konto mit GitLab verbinden - dazu sind nur ein paar Klicks erforderlich. Sobald Sie verbunden sind, können Sie Ihre GitLab-Repositorys im Dialogfeld "Workspace erstellen" durchsuchen.

GitLab Integration "Workspace erstellen" Modal

Automatisieren von Preview Deployments für GitLab Merge Requests

Folgen Sie der Schritt-für-Schritt-Anleitung, um Preview Deployments für jedes GitLab-Repository einzurichten:

  1. Wenn Sie dies noch nicht getan haben, erstellen Sie einen Codesphere User mit einem Benutzernamen und Passwort (OAuth funktioniert nicht für die Verwendung von GitLab Pipelines) - wir empfehlen die Erstellung eines separaten sysadmin Users für diesen Zweck.
  2. Melden Sie sich bei Ihrem neuen User an und verbinden Sie ihn mit GitLab, indem Sie auf den Button "+ Neuer Workspace" klicken und im Modal "Workspace erstellen" die Option "GitLab verbinden" auswählen.
  3. Stellen Sie sicher, dass das verbundene GitLab-Konto Zugriff auf das Repository hat, für das Sie die Preview Deployments einrichten wollen.
  4. Stellen Sie sicher, dass das Repository eine Codesphere CI-Pipeline mit Anweisungen zum Erstellen und Ausführen Ihrer Anwendung enthält.
  5. Erstellen Sie ein GitLab Project Access Token mit API-Zugang und der Entwicklerrolle. Entfernen Sie das Ablaufdatum, wenn Sie nicht möchten, dass das Token abläuft.
  1. Navigieren Sie zu Repository Settings/CI/CD/variables und fügen Sie die Geheimnisse (CI_ACCESS_TOKEN, CODESPHERE_EMAIL und CODESPHERE_PASSWORD) zu den Umgebungsvariablen des Repositorys hinzu. Achten Sie darauf, dass das Kontrollkästchen "Variable schützen" nicht markiert ist.
GitLab-Repository-Variablen
  1. Erstellen Sie eine .gitlab-ci.yml-Datei im Stammverzeichnis Ihres Repositorys und fügen Sie den folgenden Code hinzu. Stellen Sie sicher, dass Sie TEAM an beiden Stellen in den tatsächlichen Namen des Codesphere-Teams ändern, für das Sie deployen möchten. Weitere Informationen darüber, welche optionalen Variablen gesetzt werden können, finden Sie weiter unten.
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:
    ACCESS_TOKEN: $CI_ACCESS_TOKEN
    EMAIL: $CODESPHERE_EMAIL
    PASSWORD: $CODESPHERE_PASSWORD
    TEAM: 'Demo'
    PLAN: 'Micro'
    ON_DEMAND: 'false'
  environment:
    name: 'Codesphere Preview MR_$CI_MERGE_REQUEST_IID'
    on_stop: codesphere-teardown

codesphere-teardown:
  when: manual
  image: ghcr.io/codesphere-cloud/codesphere-monorepo/integrations/gitlab-ci:latest
  stage: deploy
  script:
    - node /app/server.js
  variables:
    ACCESS_TOKEN: $CI_ACCESS_TOKEN
    EMAIL: $CODESPHERE_EMAIL
    PASSWORD: $CODESPHERE_PASSWORD
    TEAM: 'Demo'
  environment:
    name: 'Codesphere Preview MR_$CI_MERGE_REQUEST_IID'
    action: stop

Verfügbare Variablen

Im Folgenden sind die Variablen aufgeführt, die Sie für Ihre Repository-Variablen verwenden können.

(*) = erforderliche Variable.

Variable
Usage
CI_ACCESS_TOKEN (*)
Das Zugriffstoken, das Sie für das Repository erstellt haben. Es wird empfohlen, eine sichere Repository-Variable zu verwenden.
EMAIL (*)
E-Mail des Codesphere Users
PASSWORT (*)
Passwort des codepshere Users. Es wird empfohlen, eine sichere Repository/Arbeitsbereich-Variable zu verwenden.
TEAM (*)
Name des Codesphere-Teams.
PLAN
Workspace-Plan des zu erstellenden Workspace. Verfügbare Optionen Micro, Boost, Pro. Voreinstellung: Boost.
ON_DEMAND
Legen Sie fest, ob dieses Preview Deployment immer ein- oder Off-When-Unused deployed werden sollDeployment-Modus. Verfügbare Optionen true, false
ENV
Setzen Sie Umgebungsvariablen in Ihrem Workspace. Definieren Sie sie auf die gleiche Weise, wie Sie es bei der Verwendung von dotenv in einem Node.js-Projekt tun würden. Siehe https://www.npmjs.com/package/dotenv für Details.

Ergebnis

Wenn Sie diese Anleitung befolgt haben, wird Ihre Pipeline bei jeder Zusammenführungsanforderung ausgeführt und ein Preview Deployment erstellt, mit dem Sie Ihre Änderungen überprüfen können. Sie fügt einen neuen Kommentar zu Ihrer Zusammenführungsanforderung hinzu, der die Domäne für Ihr Preview Deployment enthält:

GitLab Preview Deployment Kommentar zum Merge Request

Wenn Sie den PR schließen, wird auch das Deployment in Codesphere gelöscht. Auf diese Weise zahlen Sie nur (anteilig) für die Zeit, in der Sie die Cloud-Ressourcen tatsächlich genutzt haben.

Über den Autor

Integrationen von GitLab und Codesphere

Simon Pfeiffer

Head of Product @ Codesphere

Simon ist verantwortlich für unser Produktmarketing und die Roadmap. Er ist ein ehemaliger Green-Tech-Gründer und IT-Berater bei KPMG. Er berichtet über Trends und Erkenntnisse aus dem Aufbau von Codesphere.

Weitere Beiträge

Deployment von Landscapes auf Codesphere

Deployment von Landscapes auf Codesphere

Lernen Sie, wie Sie mehrere Dienste, die unabhängig voneinander vertikal und horizontal skaliert werden können, innerhalb eines einzigen Workspace deployen und runen können. Geeignet für das Hosting ganzer Anwendungslandschaften.

Monitoring & Alerting

Monitoring & Alerting

Erfahren Sie, wie Sie auf das in Codesphere integrierte Ressourcen Monitoring zugreifen und die Betriebszeit Ihrer Anwendungen überprüfen können.

Pfadbasiertes Routing

Pfadbasiertes Routing

Erfahren Sie, wie Sie mehrere unabhängige Anwendungen mit einer einzigen Domäne verbinden, indem Sie verschiedene Pfade mit unterschiedlichen Workspaces verknüpfen