Schritt-für-Schritt-Anleitung zum Erstellen der .gitlab-ci.yml-Datei
Grundlagen der .gitlab-ci.yml
3. Schritt-für-Schritt-Anleitung
Sobald Sie das Repository in Ihr GitLab-Konto geforkt haben, können Sie mit dem Erstellen der .gitlab-ci.yml-Datei beginnen und die Stages und Jobs der Pipeline konfigurieren. Diese Schritt-für-Schritt-Anleitung hilft Ihnen dabei, eine grundlegende CI/CD-Pipeline für das Projekt zur Analyse von Forschungspublikationen zu erstellen.
3.1 Eine .gitlab-ci.yml-Datei erstellen
Zunächst muss eine .gitlab-ci.yml-Datei erstellt werden. Dafür gibt es zwei Möglichkeiten: über die GitLab-Oberfläche oder durch manuelles Anlegen.
Sie können die .gitlab-ci.yml-Datei zwar manuell erstellen, für die erste CI/CD-Pipeline ist es jedoch oft einfacher, die GitLab-Oberfläche zu verwenden. Die Oberfläche bietet eine visuelle und umfassende Möglichkeit, eine Pipeline zu erstellen.
In diesem Beispiel wird die GitLab-Oberfläche genutzt, um die erste CI/CD-Pipeline zu erstellen. GitLab bietet dafür eine visuelle und umfassende Möglichkeit.
-
Pipeline-Editor: Öffnen Sie im Projekt den Bereich
Buildund wählen SiePipeline editor.
-
Pipeline konfigurieren: Klicken Sie auf die Schaltfläche
Configure pipeline. GitLab erstellt daraufhin eine grundlegende Pipeline, mit der Sie arbeiten können.
-
Bereiche des Pipeline-Editors: Der Pipeline-Editor enthält vier Bereiche:
Edit,Visualize,ValidateundFull configuration.-
Edit: Hier bearbeiten Sie die Pipeline, definieren die Stages und fügen Jobs und Abhängigkeiten hinzu, also nahezu alles, was Sie zum Definieren einer CI/CD-Pipeline benötigen.
-
Visualize: Hier sehen Sie die Stages und Jobs grafisch angeordnet.
-
Validate: Hier prüfen Sie Ihre CI/CD-Konfiguration vor dem Commit der Änderungen, um festzustellen, ob die Pipeline das erwartete Ergebnis liefert.
-
Full configuration: Zeigt die vollständig aufgelöste Konfiguration der Pipeline einschließlich eingebundener Einstellungen an. Wenn Sie diesen Bereich nicht verwenden, übernimmt GitLab die Auflösung automatisch.
-
3.2 Stages definieren
Definieren Sie zunächst die Stages Ihrer Pipeline. Stages sind die einzelnen Phasen, die Ihre CI/CD-Pipeline durchläuft. Jede Stage steht für einen Schritt bei der Auslieferung Ihrer Software, vom Bauen des Codes über das Testen bis zur Bereitstellung.
- Build-Stage: Diese Stage ist dafür zuständig, den Quellcode zu kompilieren und für die Tests vorzubereiten.
- Test-Stage: Diese Stage führt automatisierte Tests aus, um sicherzustellen, dass der Code korrekt funktioniert.
- Deploy-Stage: Diese Stage übernimmt die Bereitstellung der Anwendung in der vorgesehenen Umgebung.
stages:
- build
- test
- deploy
Hinweis: Dies ist nur ein Beispiel. Sie können die Stages definieren, die Sie für Ihre Anwendung für notwendig halten. Die Stages können beliebig benannt werden.
3.3 Jobs für jede Stage hinzufügen
Die GitLab-CI/CD-Pipeline wurde nun mit dem Pipeline editor in der GitLab-Oberfläche erstellt, und die grundlegenden stages sind definiert.
Fügen Sie als Nächstes Jobs für jede Stage hinzu. Jobs sind die einzelnen Aufgaben, die innerhalb einer Stage ausgeführt werden. Jeder Job legt eine Folge von Befehlen (Skripten) fest, die ausgeführt werden sollen.
Im Beispiel werden nun Jobs für jede der definierten Stages angelegt.
Build-Stage
In der Build-Stage kompilieren Sie üblicherweise den Quellcode und bereiten ihn für die Tests vor.
build_job:
stage: build
script:
- echo "Anwendung wird gebaut..."
- pip install -r requirements.txt
- echo "Build abgeschlossen"
Test-Stage
In der Test-Stage führen Sie automatisierte Tests aus, um sicherzustellen, dass der Code korrekt funktioniert.
test_job:
stage: test
script:
- echo "Tests werden ausgeführt..."
- pytest tests/
- echo "Tests abgeschlossen"
Deploy-Stage
In der Deploy-Stage stellen Sie die Anwendung in der vorgesehenen Umgebung bereit. (Im Beispiel wird die Anwendung nicht tatsächlich bereitgestellt.)
deploy_job:
stage: deploy
script:
- echo "Anwendung wird bereitgestellt..."
- # scp -r dist/ user@server:/path/to/deploy
- echo "Bereitstellung abgeschlossen"
3.4 Skripte zu den Jobs hinzufügen
Jeder Job sollte die Skripte enthalten, die zur Erledigung seiner Aufgaben notwendig sind. Diese Skripte sind die eigentlichen Befehle, die während der Pipeline-Ausführung ausgeführt werden.
Beispiel für einen Build-Job
In diesem Build-Job wird die Anwendung gebaut, indem die Abhängigkeiten des Python-Projekts installiert werden und der Build-Befehl ausgeführt wird.
Der Befehl pip install -r requirements.txt installiert die in der Datei requirements.txt definierten Python-Pakete, und python setup.py build kompiliert die Python-Anwendung.
build_job:
stage: build
script:
- echo "Anwendung wird gebaut..."
- pip install -r requirements.txt
- python setup.py build
Beispiel für einen Test-Job
In diesem Test-Job werden die Tests der Anwendung ausgeführt, um ihre Funktionalität zu überprüfen.
test_job:
stage: test
script:
- echo "Tests werden ausgeführt..."
- python -m unittest discover
Beispiel für einen Deploy-Job
In diesem Deploy-Job wird die gebaute Anwendung auf einen Server kopiert. (Wie bereits erwähnt, wird die Anwendung im Beispiel nicht tatsächlich bereitgestellt.)
deploy_job:
stage: deploy
script:
- echo "Anwendung wird bereitgestellt..."
- scp -r dist/ user@server:/path/to/deploy
3.5 Abhängigkeiten hinzufügen (optional)
Wenn bestimmte Jobs die Ausgaben anderer Jobs benötigen, können Sie Abhängigkeiten definieren. Dadurch stehen die benötigten Artefakte im nachfolgenden Job zur Verfügung.
test_job:
stage: test
script:
- echo "Tests werden ausgeführt..."
- python -m unittest discover
dependencies:
- build_job
3.6 Artefakte definieren (optional)
Artefakte sind Dateien, die von Jobs erzeugt werden und an nachfolgende Jobs weitergegeben werden können. Das ist nützlich, um Build-Ausgaben zwischen Jobs bereitzustellen.
build_job:
stage: build
script:
- pip install -r requirements.txt
- python setup.py build
artifacts:
paths:
- dist/