Sobes.tech
Junior

Woher erhält der Runner den Code zum Ausführen?

sobes.tech KI

Antwort von AI

Der Runner erhält den Code zur Ausführung aus dem Repository des Versionskontrollsystems, in der Regel über ein Protokoll wie Git. Die konkrete URL des Repositories und der Branch (oder Tag, Commit) werden in der Pipeline-Konfiguration angegeben, die diesen Runner startet.

Der Beschaffungsprozess könnte wie folgt aussehen:

  1. Der Runner erhält den Befehl, eine Aufgabe vom CI/CD-Orchestrator auszuführen (z.B. GitLab CI/CD, GitHub Actions, Jenkins).
  2. Zusammen mit dem Befehl werden Informationen über die Aufgabe übertragen, einschließlich des Links zum Repository, des Branchs/Commits und des Ausführungskontexts.
  3. Der Runner führt eine Klon-Operation des Repositories (oder eines Teils davon) in seinen temporären lokalen Arbeitsbereich durch.
  4. Nach erfolgreichem Klonen wechselt der Runner auf den angegebenen Commit, Branch oder Tag, um mit der richtigen Version des Codes zu arbeiten.

Beispiel für einen Klon-Befehl in GitLab CI:

# Klonen des Repositories, angegeben in der Variablen CI_REPOSITORY_URL
git clone "$CI_REPOSITORY_URL" "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Wechsel in das Projektverzeichnis
cd "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Überprüfung auf den benötigten Commit
git checkout "$CI_COMMIT_SHA"

In manchen Fällen, bei Vorhandensein von Cache, kann der Runner zunächst prüfen, ob eine lokale Kopie des Repositories existiert, und nur git fetch und git checkout ausführen, um den Zustand zu aktualisieren, anstatt vollständig zu klonen.

Die Konfiguration, die die Code-Quelle bestimmt, wird in der Regel in einer YAML-Datei angegeben, die den Pipeline beschreibt (z.B. .gitlab-ci.yml, .github/workflows/*.yml).