Sobes.tech
Middle

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 op false (standaard), stopt de pipeline bij een fout van deze job. Als ingesteld op true, 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 sleutelwoord rules gebruiken samen met when: manual om 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.