Sobes.tech
Middle

Come configurare l'esecuzione di un job in GitLab premendo un pulsante?

sobes.tech AI

Risposta dell'AI

Per configurare l'avvio manuale di un job in GitLab CI/CD, si utilizza la parola chiave when: manual nella descrizione del job nel file .gitlab-ci.yml.

Esempio:

stages:
  - build
  - deploy

build_job:
  stage: build
  script:
    - echo "Costruzione del progetto..."
    # Comandi di build

deploy_staging:
  stage: deploy
  script:
    - echo "Deploy in staging..."
    # Comandi di deploy
  when: manual # Questo job deve essere avviato manualmente
  allow_failure: false # Per impostazione predefinita false, ma esplicitamente indicato per chiarezza

Spiegazione:

  • when: manual: Indica a GitLab che questo job non verrà avviato automaticamente al cambiamento del codice (commit) o secondo una pianificazione. Attenderà che l'utente lo avvii manualmente tramite l'interfaccia di GitLab.
  • allow_failure: false: Determina se i job successivi (se presenti) devono essere eseguiti se questo job manuale termina con errore. Se impostato su false (valore predefinito), il pipeline si fermerà in caso di fallimento di questo job. Se impostato su true, il pipeline continuerà anche in caso di errore.

Dopo aver aggiunto e committato un file .gitlab-ci.yml con questa configurazione, nell'interfaccia dei pipeline di GitLab (CI/CD -> Pipelines) apparirà un pulsante "Run" o il suo stato sarà mostrato come "Manual" accanto al job deploy_staging. Cliccando su questo pulsante si avvia l'esecuzione del job.

È anche possibile includere job manuali in fasi che avviano automaticamente altri job. Ad esempio:

stages:
  - build
  - test
  - deploy

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

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

deploy_production:
  stage: deploy
  needs: [test_job]
  script:
    - echo "Deploy in produzione..."
  when: manual # Disponibile solo dopo un test riuscito, manualmente
  variables:
    TARGET_ENVIRONMENT: "production" # Esempio: passaggio di variabili al job manuale

Qui, il job deploy_production sarà disponibile per l'avvio manuale solo dopo il completamento con successo del job test_job.

Inoltre:

  • variables: I job manuali possono usare variabili definite sia nel file .gitlab-ci.yml che nelle impostazioni del progetto/gruppo.
  • rules: Scenari di esecuzione più complessi possono usare la parola chiave rules insieme a when: manual per definire condizioni in cui il job manual diventa disponibile o obbligatorio.
  • API: I job manuali possono essere avviati anche tramite l'API di GitLab CI/CD.

In sintesi, when: manual è il meccanismo principale per implementare l'avvio manuale dei job in GitLab.