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.
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:
- 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.
- 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.
- Stellen Sie sicher, dass das verbundene GitLab-Konto Zugriff auf das Repository hat, für das Sie die Preview Deployments einrichten wollen.
- Stellen Sie sicher, dass das Repository eine Codesphere CI-Pipeline mit Anweisungen zum Erstellen und Ausführen Ihrer Anwendung enthält.
- 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.
- 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.
- 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.
| |
---|
| Das Zugriffstoken, das Sie für das Repository erstellt haben. Es wird empfohlen, eine sichere Repository-Variable zu verwenden. |
| E-Mail des Codesphere Users |
| Passwort des codepshere Users. Es wird empfohlen, eine sichere Repository/Arbeitsbereich-Variable zu verwenden. |
| Name des Codesphere-Teams. |
| Workspace-Plan des zu erstellenden Workspace. Verfügbare Optionen Micro, Boost, Pro. Voreinstellung: Boost. |
| Legen Sie fest, ob dieses Preview Deployment immer ein- oder Off-When-Unused deployed werden sollDeployment-Modus. Verfügbare Optionen true, false |
| 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:
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.