Sobes.tech
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 na false (výchozí), pipeline se zastaví v případě selhání této úlohy. Pokud na true, 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é slovo rules spolu s when: manual k 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.