1420 links
  • Animal
  • Home
  • Login
  • RSS Feed
  • ATOM Feed
  • Tag cloud
  • Picture wall
  • Daily
Links per page: 20 50 100
page 1 / 1
1 results tagged CI x
  • .gitlab-ci.yml Part Seven – Basics Of Interruptible Resource Group Trigger | CloudAffaire

    J'utilise gitlab-ci chez mon client. Or quelque chose m'a profondément agacé ces derniers jours.

    Voilà le contexte : le fichier .gitlab-ci.yml du projet sur lequel je travaille prévoit qu'un seul pipeline peut être lancé à la fois sur une même branche. Rien de très étonnant jusque là. Du coup, lorsqu'un pipeline est lancé alors qu'un autre est déjà en cours d'exécution, le second tombe en erreur.

    Quel est le problème : quand on est tout seul à faire des merge-request, on peut toujours relancer manuellement un pipeline tombé en erreur. Mais quand on est 10 à en faire, je vous laisse deviner ce qui se passe :

    • pendant que le pipeline A tourne, les merge-request affluent et créent des pipelines B, C, D etc qui tombent tous en erreur;
    • et une fois que le pipeline A se termine, c'est une énorme course au drapeau qui se déclenche pour savoir qui cliquera le premier sur le bouton permettant de relancer son pipeline (qui dure près de deux heures et demi).
    • le perdant ultime gagne potentiellement le droit de se taper le merge de tous les autres, même si sa merge-request est la première à avoir échoué.

    Bref. Une bonne âme m'a filé l'astuce, il s'agit d'utiliser la propriété resource_group.

    Comme on peut le voir dans l'exemple en lien, il faut simplement :

    • ajouter cette propriété dans chacun des jobs qu'on ne veut pas voir s'exécuter en parallèle;
    • donner la même valeur à la propriété partout (on peut changer de valeur pour créer des sous-groupes évidemment).

    Il s'agit en fait de créer une "ressource" partagée, qui ne pourra être utilisée que par un seul job à la fois (et donc ici, par un seul pipeline à la fois). Les pipelines qui arriveront ensuite seront mis en file d'attente au lieu d'être mis en échec. Quand le premier job/pipeline se termine, il libère la ressource qui est passée au pipeline suivant, etc.

    Wed Nov 18 21:49:20 2020 * - permalink -
    QRCode
    - https://cloudaffaire.com/gitlab-ci-yml-part-seven-basics-of-interruptible-resource-group-trigger/
    CI Continue Exécution Gitlab Gitlab-ci Intégration Parallèle Resource_group
Links per page: 20 50 100
page 1 / 1
Shaarli - The personal, minimalist, super-fast, database free, bookmarking service by the Shaarli community - Help/documentation