|
|
# Allgemein zur Pipeline / HowTo Pipeline:
|
|
|
|
|
|
Um die Gitlab-CI-Pipline nutzen zu können, benötigt man aus Entwickler sicht nicht viel machen.
|
|
|
Die gesamte Konfiguration der Pipeline wird in der .gitlab-ci.yml Datei erstellt. Dh. alles was die Pipeline ausführen soll, wird in dieser Datei definiert.
|
|
|
|
|
|
Es gibt drei wichtige Komponenten, die man bei der Gitlab-CI-Pipline kennen sollte:
|
|
|
1. Stages: In jeder Stage können sich mehrere Jobs befinden. Alle Jobs, die derselben Stage zugeordnet sind, werden (bzw. können bei manuellen Jobs) parallel ausgeführt werden.
|
|
|
2. Jobs: Ein Job benötigt einen Namen und muss immer einen script Anteil besitzen. In diesem script Abschnitt können dann die Befehle definiert werden. Er sollte zudem einer Stage zugeordnet werden.
|
|
|
3. Pipelines: Die Pipeline insgesamt besteht dann eben aus allen definierten Stages, die nacheinander ausgeführt werden. Zudem kann für jeden Job einer Pipeline definiert weden, für welchen Branch dieser ausgeführt werden.
|
|
|
Die Pipelines können im Projekt under CI/CD -> Pipelines angezeigt werden. Durch Anklicken der Pipeline-Nummer kann man die einzelnen Jobs dieser Pipeline aufrufen.
|
|
|
Weitere Informationen und mehr Details mit der aktuellsten Referenz ist immer auf https://docs.gitlab.com/ee/ci/yaml/ zu finden.
|
|
|
|
|
|
# Aktuelle Konfiguration
|
|
|
Aktuell haben wir drei Stages definiert. Die Build-, Push- und Deploy-Stage.
|
|
|
- In der Build Stage werden die beiden Jobs zur Erstellung der Docker Images definiert.
|
|
|
Die Images werden danach gezippt und in die Artifacts hochgeladen. Das sollte in der Zukunft eventuell angepasst werden, sodass die Images in die Gitlab Registry gepushed werden. Die Registry funktioniert allerdings noch nicht.
|
|
|
-
|
|
|
|
|
|
# Manuelles Deployment
|
|
|
|
|
|
# Technischer Hintergrund Gitlab-CI-Pipline
|
|
|
Die im .gitlab-ci.yml File festgelegte Konfiguration wird dann an einen sogenannten Runner weitergekeitet. Ein Runner ist eigentlich ein ganz normaler PC (meist jedoch ein Server oder eine VM mit Linux Betriebssystem).
|
|
|
Auf diesem werden dann die Befehle aus der Konfiguration ausgeführt. Es gibt zwei Arten von Runnern. Es kann entweder ein lokaler Runner konfiguriert werden, welcher nur für dieses Projekt verwendet wird.
|
|
|
Und es gibt Shared Runner, welche von allen Projekten benutzt werden können. |
|
|
\ No newline at end of file |