Sobes.tech
Middle

Ako nastaviť spustenie jobu v GitLab pomocou tlačidla?

sobes.tech AI

Odpoveď od AI

Na nastavenie ručného spustenia úlohy v GitLab CI/CD sa používa kľúčové slovo when: manual v popise úlohy v súbore .gitlab-ci.yml.

Príklad:

stages:
  - build
  - deploy

build_job:
  stage: build
  script:
    - echo "Building the project..."
    # Príkazy na zostavenie

deploy_staging:
  stage: deploy
  script:
    - echo "Deploying to staging..."
  when: manual # Túto úlohu je potrebné spustiť manuálne
  allow_failure: false # Predvolene je to false, ale jasne to uvedieme

Vysvetlenie:

  • when: manual: Určuje GitLab, že táto úloha sa automaticky nespustí pri zmene kódu (commit) alebo podľa plánu. Čaká na manuálne spustenie používateľom cez rozhranie GitLab.
  • allow_failure: false: Určuje, či majú nasledovné úlohy (ak sú) byť vykonané, ak táto manuálna úloha skončila neúspešne. Ak je nastavené na false (predvolené), pipeline sa zastaví v prípade neúspechu tejto úlohy. Ak je nastavené na true, pipeline bude pokračovať aj pri neúspechu.

Po pridaní a commite takého .gitlab-ci.yml súboru sa v rozhraní pipelineov GitLab (CI/CD -> Pipelines) pri úlohe deploy_staging objaví tlačidlo na spustenie („Run“) alebo jej stav bude zobrazený ako „Manual“. Kliknutie na toto tlačidlo spustí vykonanie úlohy.

Taktiež je možné zahrnúť ručné úlohy do etáp, ktoré automaticky spúšťajú iné úlohy. Napríklad:

stages:
  - build
  - test
  - deploy

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

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

deploy_production:
  stage: deploy
  needs: [test_job]
  script:
    - echo "Deploying to production..."
  when: manual # Len po úspešnom teste, a potom manuálne
  variables:
    TARGET_ENVIRONMENT: "production" # Príklad: odovzdanie premenných pre ručnú úlohu

Tu bude úloha deploy_production dostupná na ručné spustenie až po úspešnom dokončení úlohy test_job.

Ďalej:

  • variables: Ručné úlohy môžu používať premenné definované ako v súbore .gitlab-ci.yml, tak aj v nastaveniach projektu/skupiny.
  • rules: Zložitejšie scenáre spúšťania môžu používať kľúčové slovo rules spolu s when: manual na určenie podmienok, za ktorých sa ručná úloha stáva dostupnou alebo povinnou.
  • API: Ručné úlohy môžu byť tiež spustené cez GitLab CI/CD API.

Takže, when: manual je základný mechanizmus na implementáciu ručného spustenia úloh v GitLab.