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 sufalse(valore predefinito), il pipeline si fermerà in caso di fallimento di questo job. Se impostato sutrue, 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.ymlche nelle impostazioni del progetto/gruppo.rules: Scenari di esecuzione più complessi possono usare la parola chiaverulesinsieme awhen: manualper 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.