Hoe stel je in GitLab de uitvoering van een job in door op een knop te drukken?
sobes.tech AI
Antwoord van AI
Om handmatige uitvoering van een job in GitLab CI/CD te configureren, wordt het sleutelwoord when: manual gebruikt in de beschrijving van de job in het .gitlab-ci.yml-bestand.
Voorbeeld:
stages:
- build
- deploy
build_job:
stage: build
script:
- echo "Het project wordt gebouwd..."
# Bouwcommando's
deploy_staging:
stage: deploy
script:
- echo "Deployen naar staging..."
# Deploy-commando's
when: manual # Deze job moet handmatig worden gestart
allow_failure: false # Standaard false, maar expliciet aangegeven voor duidelijkheid
Uitleg:
when: manual: Geeft GitLab aan dat deze job niet automatisch wordt gestart bij codewijzigingen (commit) of volgens schema. Het wacht op handmatige start door de gebruiker via de GitLab-interface.allow_failure: false: Bepaalt of latere jobs (indien aanwezig) worden uitgevoerd als deze handmatige job faalt. Als ingesteld opfalse(standaard), stopt de pipeline bij een fout van deze job. Als ingesteld optrue, gaat de pipeline door ondanks de fout.
Na het toevoegen en committeren van een .gitlab-ci.yml-bestand met deze configuratie, verschijnt in de pipeline-interface van GitLab (CI/CD -> Pipelines) een knop "Run" of wordt de status weergegeven als "Manual" naast de job deploy_staging. Door op deze knop te klikken, wordt de job gestart.
Handmatige jobs kunnen ook worden opgenomen in fasen die automatisch andere jobs starten. Bijvoorbeeld:
stages:
- build
- test
- deploy
build_job:
stage: build
script:
- echo "Bouwen..."
test_job:
stage: test
needs: [build_job]
script:
- echo "Testen..."
deploy_production:
stage: deploy
needs: [test_job]
script:
- echo "Deployen naar productie..."
when: manual # Alleen na succesvolle test, handmatig
variables:
TARGET_ENVIRONMENT: "production" # Voorbeeld: variabelen doorgeven aan handmatige job
Hier wordt de job deploy_production alleen beschikbaar voor handmatige uitvoering na succesvolle voltooiing van test_job.
Daarnaast:
variables: Handmatige jobs kunnen variabelen gebruiken die zijn gedefinieerd in zowel het.gitlab-ci.yml-bestand als in de project/groep-instellingen.rules: Complexere uitvoering scenario's kunnen de sleutelwoordrulesgebruiken samen metwhen: manualom voorwaarden te definiëren waaronder de handmatige job beschikbaar of verplicht wordt.- API: Handmatige jobs kunnen ook via de GitLab CI/CD API worden gestart.
Kortom, when: manual is het belangrijkste mechanisme voor het implementeren van handmatige uitvoering van jobs in GitLab.