Gitlab CI - Avoir un job manuel sans bloquer les suivants

Posté le Mercredi 27 mai 2020 - 15:24
Dernière mise à jour le Mercredi 27 mai 2020 - 16:49

Via Gitlab CI il est possible de faire qu'un job soit manuel (manual) afin que, comme son nom l'indique, il ne soit exécuté que si l'on en a besoin.

C'est pratique pour des tâches non obligatoires ou que l'on veut ne pas lancer à chaque déploiement.

Le soucis est que par défaut, si le job n'est pas lancé et qu'il y a des jobs dans des étapes (stage) après le job manuel, alors ils ne seront pas exécuté tant que le job manuel n'est pas lancé :

Image
gitlab ci job manuel

 

Pour éviter ce comportement on peut ajouter l'attribut « allow_failure: true » à notre règle afin de ne pas bloquer la pipeline, mais de quand même pouvoir déclencher notre job quand on le veut.

Voici la définition complète pour ne proposer ce job manuel que lors de la création d'un tag :

  1. prod_backup_db_manual:
  2.   rules:
  3.   - if: $CI_COMMIT_TAG != null && $CI_PIPELINE_SOURCE != "schedule"
  4.   when: manual
  5.   allow_failure: true
  6.   script:
  7. - echo "hello world"
  8.   stage : backup
  9.   environment:
  10.   name: prod

Voici la définition complète pour ne proposer ce job manuel que lors d'un commit sur la branche master.

  1. prod_backup_db_manual:
  2.   rules:
  3.   - if: $CI_COMMIT_BRANCH == "master" && $CI_PIPELINE_SOURCE != "schedule"
  4.   when: manual
  5.   allow_failure: true
  6.   script:
  7. - echo "hello world"
  8.   stage : backup
  9.   environment:
  10.   name: prod

 

Aller plus loin ?

 

Ajouter un commentaire

Ne sera pas publié

HTML restreint

  • Balises HTML autorisées : <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Les adresses de pages web et les adresses courriel se transforment en liens automatiquement.
CAPTCHA Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...