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 auffalsegesetzt (Standard), stoppt der Pipeline bei einem Fehler dieses Jobs. Wenn auftruegesetzt, 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üsselwortruleszusammen mitwhen: manualverwenden, 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.