Middle
Jak nastavit spuštění jobu v GitLab stiskem tlačítka?
sobes.tech AI
Odpověď od AI
Pro konfiguraci ručního spuštění úlohy v GitLab CI/CD se v popisu úlohy v souboru .gitlab-ci.yml používá klíčové slovo when: manual.
Příklad:
stages:
- build
- deploy
build_job:
stage: build
script:
- echo "Stavba projektu..."
# Příkazy pro stavbu
deploy_staging:
stage: deploy
script:
- echo "Nasazení na staging..."
when: manual # Tato úloha musí být spuštěna ručně
allow_failure: false # Výchozí hodnota je false, ale je explicitně uvedena pro přehlednost
Vysvětlení:
when: manual: Označuje GitLab, že tato úloha se nespustí automaticky při změně kódu (commit) nebo podle plánu. Čeká na ruční spuštění uživatelem přes rozhraní GitLab.allow_failure: false: Určuje, zda mají být následující úlohy (pokud existují) spuštěny, pokud tato ruční úloha selže. Pokud je nastavena nafalse(výchozí), pipeline se zastaví v případě selhání této úlohy. Pokud natrue, pipeline bude pokračovat i při selhání.
Po přidání a commitu souboru .gitlab-ci.yml s touto konfigurací se v rozhraní pipeline GitLab (CI/CD -> Pipelines) objeví tlačítko "Run" nebo jeho stav bude zobrazen jako "Manual". Kliknutím na toto tlačítko se úloha spustí.
Lze také zahrnout ruční úlohy do etap, které automaticky spouštějí jiné úlohy. Například:
stages:
- build
- test
- deploy
build_job:
stage: build
script:
- echo "Stavba..."
test_job:
stage: test
needs: [build_job]
script:
- echo "Testování..."
deploy_production:
stage: deploy
needs: [test_job]
script:
- echo "Nasazení do produkce..."
when: manual # Pouze po úspěšném testu, ručně
variables:
TARGET_ENVIRONMENT: "production" # Příklad: předání proměnných pro ruční úlohu
Zde bude úloha deploy_production dostupná pro ruční spuštění až po úspěšném dokončení úlohy test_job.
Dále:
variables: Ruční úlohy mohou používat proměnné definované jak v souboru.gitlab-ci.yml, tak v nastavení projektu/skupiny.rules: Složitější scénáře spuštění mohou používat klíčové slovorulesspolu swhen: manualk určení podmínek, za kterých je ruční úloha dostupná nebo povinná.- API: Ruční úlohy lze také spouštět přes API GitLab CI/CD.
Stručně řečeno, when: manual je hlavní mechanismus pro implementaci ručního spuštění úloh v GitLab.