32 Job Definition in GitLab CI

Ein Job ist die grundlegende Einheit in einer GitLab CI/CD-Pipeline. Jeder Job repräsentiert eine spezifische Aufgabe oder ein Skript, das ausgeführt werden soll. Er gehört zu einer Stage und wird in der Reihenfolge der definierten Stages ausgeführt. Der Job wird in der .gitlab-ci.yml-Datei beschrieben und kann dabei viele verschiedene Parameter enthalten, die seine Ausführung und das Verhalten in der Pipeline steuern.

32.1 Syntax und Aufbau eines Jobs

Ein Job wird als eigener Abschnitt in der .gitlab-ci.yml-Datei definiert. Der Name des Jobs fungiert als Schlüssel und ist frei wählbar, sollte jedoch eindeutig und aussagekräftig sein. Darunter werden verschiedene Parameter wie script, stage, und variables festgelegt, die bestimmen, was der Job ausführt, in welcher Phase der Pipeline er läuft und welche Umgebung er verwendet.

Beispiel:

build_job:
  stage: build
  script:
    - echo "Building the project"
    - make build

In diesem Beispiel ist der Job build_job in der build-Phase der Pipeline zugeordnet. Der Job führt die im script-Abschnitt definierten Befehle aus. Zuerst wird eine einfache Ausgabe mit echo ausgeführt, danach der Build-Prozess mit make build.

32.2 Wichtige Parameter für Jobs:

  1. script: Der wichtigste Parameter, der die Befehle enthält, die im Job ausgeführt werden sollen. Dies können einfache Shell-Befehle oder komplexe Skripte sein.

  2. stage: Gibt an, in welcher Phase der Pipeline der Job ausgeführt wird. Phasen wie build, test, und deploy sind gängig.

  3. tags: Verwendet, um den Job auf spezifischen Runnern mit bestimmten Eigenschaften auszuführen.

  4. artifacts und cache: Werden verwendet, um Ergebnisse zwischen verschiedenen Jobs zu speichern und wiederzuverwenden.

Ein Job kann allein stehen oder in einer größeren Pipeline mit mehreren Jobs und Stages eingebettet sein. Jeder Job läuft in einer isolierten Umgebung, was zu konsistenten und wiederholbaren Builds führt.


Weitere Informationen finden sich in der offiziellen GitLab-Dokumentation zu Job Keywords.