Sobes.tech
Middle

Comment configurer l'exécution d'une tâche dans GitLab en appuyant sur un bouton?

sobes.tech IA

Réponse de l'IA

Pour configurer le lancement manuel d'un job dans GitLab CI/CD, la mot-clé when: manual est utilisé dans la description du job dans le fichier .gitlab-ci.yml.

Exemple:

stages:
  - build
  - deploy

build_job:
  stage: build
  script:
    - echo "Construction du projet..."
    # Commandes de build

deploy_staging:
  stage: deploy
  script:
    - echo "Déploiement en staging..."
    # Commandes de déploiement
  when: manual # Ce job doit être lancé manuellement
  allow_failure: false # Par défaut false, mais explicitement indiqué pour clarté

Explication:

  • when: manual: Indique à GitLab que ce job ne sera pas lancé automatiquement lors d'un changement de code (commit) ou selon un calendrier. Il attendra que l'utilisateur le lance manuellement via l'interface GitLab.
  • allow_failure: false: Détermine si les jobs suivants (s'il y en a) doivent s'exécuter si ce job manuel échoue. Si défini à false (valeur par défaut), le pipeline s'arrêtera en cas d'échec de ce job. Si défini à true, le pipeline continuera même en cas d'échec.

Après avoir ajouté et committé un fichier .gitlab-ci.yml avec cette configuration, dans l'interface des pipelines GitLab (CI/CD -> Pipelines), un bouton de lancement ("Run") apparaîtra ou son statut sera affiché comme "Manual" à côté du job deploy_staging. Cliquer sur ce bouton lancera le job.

Il est également possible d'inclure des jobs manuels dans des étapes qui déclenchent automatiquement d'autres jobs. Par exemple:

stages:
  - build
  - test
  - deploy

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

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

deploy_production:
  stage: deploy
  needs: [test_job]
  script:
    - echo "Déploiement en production..."
  when: manual # Disponible uniquement après un test réussi, manuellement
  variables:
    TARGET_ENVIRONMENT: "production" # Exemple: passage de variables pour le job manuel

Ici, le job deploy_production ne sera disponible pour lancement manuel qu'après la réussite du job test_job.

En plus:

  • variables: Les jobs manuels peuvent utiliser des variables définies dans le fichier .gitlab-ci.yml ou dans les paramètres du projet/groupe.
  • rules: Des scénarios d'exécution plus complexes peuvent utiliser la clé rules avec when: manual pour définir les conditions rendant le job manuel disponible ou obligatoire.
  • API: Les jobs manuels peuvent également être lancés via l'API GitLab CI/CD.

Ainsi, when: manual est le mécanisme principal pour réaliser le lancement manuel d'un job dans GitLab.