Sobes.tech
Middle

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 pe false (implicit), pipeline-ul se va opri în caz de eșec. Dacă este setat pe true, 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 cheie rules împreună cu when: manual pentru 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.