Cum se configurează rularea unui job în GitLab prin apăsarea unui buton?
sobes.tech AI
Răspuns de la AI
Pentru a configura pornirea manuală a unui job în GitLab CI/CD, se folosește cuvântul cheie when: manual în descrierea job-ului din fișierul .gitlab-ci.yml.
Exemplu:
stages:
- build
- deploy
build_job:
stage: build
script:
- echo "Construirea proiectului..."
# Comenzi de construire
deploy_staging:
stage: deploy
script:
- echo "Deploy pe staging..."
# Comenzi de deploy
when: manual # Acest job trebuie inițiat manual
allow_failure: false # Implicit false, dar specificat explicit pentru claritate
Explicație:
when: manual: Indică GitLab că acest job nu va fi lansat automat la schimbarea codului (commit) sau conform programului. Va aștepta să fie inițiat manual de utilizator prin interfața GitLab.allow_failure: false: Determină dacă job-urile următoare (dacă există) trebuie să fie executate dacă acest job manual eșuează. Dacă este setat pefalse(implicit), pipeline-ul se va opri în caz de eșec. Dacă este setat petrue, pipeline-ul va continua chiar dacă acest job eșuează.
După adăugarea și commitarea unui fișier .gitlab-ci.yml cu această configurație, în interfața pipeline-urilor GitLab (CI/CD -> Pipelines) va apărea un buton "Run" sau statusul va fi afișat ca "Manual" lângă job-ul deploy_staging. Apăsarea acestui buton va iniția execuția job-ului.
De asemenea, se pot include job-uri manuale în etape care lansează automat alte job-uri. De exemplu:
stages:
- build
- test
- deploy
build_job:
stage: build
script:
- echo "Construire..."
test_job:
stage: test
needs: [build_job]
script:
- echo "Testare..."
deploy_production:
stage: deploy
needs: [test_job]
script:
- echo "Deploy pe producție..."
when: manual # Disponibil doar după testul reușit, manual
variables:
TARGET_ENVIRONMENT: "production" # Exemplu: transmiterea variabilelor pentru job-ul manual
Aici, job-ul deploy_production va fi disponibil pentru pornire manuală doar după finalizarea cu succes a job-ului test_job.
În plus:
variables: Job-urile manuale pot folosi variabile definite atât în fișierul.gitlab-ci.yml, cât și în setările proiectului/grupului.rules: Scenarii de execuție mai complexe pot folosi cuvântul cheierulesîmpreună cuwhen: manualpentru a defini condițiile în care job-ul manual devine disponibil sau obligatoriu.- API: Job-urile manuale pot fi, de asemenea, lansate prin API-ul GitLab CI/CD.
În concluzie, when: manual este mecanismul principal pentru implementarea pornirii manuale a job-urilor în GitLab.