Sobes.tech
Middle

Wie konfiguriert man die Ausführung eines Jobs in GitLab durch Drücken eines Knopfs?

sobes.tech KI

Antwort von AI

Um einen Job in GitLab CI/CD manuell zu starten, wird das Schlüsselwort when: manual in der Job-Beschreibung in der Datei .gitlab-ci.yml verwendet.

Beispiel:

stages:
  - build
  - deploy

build_job:
  stage: build
  script:
    - echo "Das Projekt wird gebaut..."
    # Build-Befehle

deploy_staging:
  stage: deploy
  script:
    - echo "Deployment auf staging..."
    # Deployment-Befehle
  when: manual # Dieser Job muss manuell gestartet werden
  allow_failure: false # Standardmäßig false, wird aber explizit für Klarheit gesetzt

Erläuterung:

  • when: manual: Gibt GitLab an, dass dieser Job nicht automatisch beim Code-Änderung (Commit) oder nach Zeitplan gestartet wird. Er wartet auf manuelles Starten durch den Benutzer über die GitLab-Oberfläche.
  • allow_failure: false: Bestimmt, ob nachfolgende Jobs (falls vorhanden) ausgeführt werden, wenn dieser manuelle Job fehlschlägt. Wenn auf false gesetzt (Standard), stoppt der Pipeline bei einem Fehler dieses Jobs. Wenn auf true gesetzt, wird die Pipeline auch bei Fehler fortgesetzt.

Nach Hinzufügen und Commiten einer .gitlab-ci.yml-Datei mit dieser Konfiguration erscheint im GitLab-Pipeline-Interface (CI/CD -> Pipelines) eine Schaltfläche "Run" oder der Status wird als "Manual" angezeigt. Das Klicken auf diese Schaltfläche startet den Job.

Man kann auch manuelle Jobs in Phasen einbinden, die automatisch andere Jobs starten. Zum Beispiel:

stages:
  - build
  - test
  - deploy

build_job:
  stage: build
  script:
    - echo "Bauen..."

test_job:
  stage: test
  needs: [build_job]
  script:
    - echo "Testen..."

deploy_production:
  stage: deploy
  needs: [test_job]
  script:
    - echo "Deployment auf Produktion..."
  when: manual # Nur nach erfolgreichem Test manuell
  variables:
    TARGET_ENVIRONMENT: "production" # Beispiel: Variablen an den manuellen Job übergeben

Hier wird der Job deploy_production nur nach erfolgreichem Abschluss von test_job manuell verfügbar.

Zusätzlich:

  • variables: Manuelle Jobs können Variablen verwenden, die sowohl in der .gitlab-ci.yml-Datei als auch in den Projekteinstellungen/Gruppeinstellungen definiert sind.
  • rules: Komplexere Ausführungsszenarien können die Schlüsselwort rules zusammen mit when: manual verwenden, um Bedingungen festzulegen, unter denen der manuelle Job verfügbar oder verpflichtend wird.
  • API: Manuelle Jobs können auch über die GitLab CI/CD API gestartet werden.

Kurz gesagt, when: manual ist der Hauptmechanismus, um die manuelle Ausführung von Jobs in GitLab zu realisieren.