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é nafalse(predvolené), pipeline sa zastaví v prípade neúspechu tejto úlohy. Ak je nastavené natrue, 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é slovorulesspolu swhen: manualna 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.