Depuis 10 ans, j’ai eu l’habitude d’utiliser Gitlab pour versionner mon code et Jenkins s’occupait de l’intégration continue (package NPM, extension Chrome et surtout des conteneurs Docker).
Maintenir une PIC (plateforme d’intégration continue) demande du temps, des compétences et des ressources serveurs.
Quelles sont les raisons qui nous ont poussées à changer ?
Pour résumer :
Solution Saas qui permet :
Bitbuket est proposé en version gratuite avec 50 minutes de compilation, ce qui est suffisant pour tester l’outil. Nous l’avons utilisé pour notre migration afin d’évaluer les fonctionnalités, tout s’est très bien exécuté et dans le temps imparti. Bitbuket est aussi disponible en version payante avec plusieurs abonnements en fonction du temps de compilation des pipelines par dépôts.
Une forte contrainte est à souligner : Le fait de devoir compiler dans un conteneur docker. Lorsque l’on utilisait Jenkins, je passais déjà un bon nombre d’heures pour le mettre en place et j’aurais apprécié gagner en temps là-dessus.
Il faut se connecter dans Bitbucket et réaliser un import pour chaque dépôt.
L’adresse pour importer est: https://bitbucket.org/repo/import
Voici à quoi ressemble la fenêtre :
On a du importer à la main chaque projet, c’est pas si long que ça 🙂
C’est quoi ? Un pipeline décrit un enchaînement d’actions qui sont réalisées dans des étapes (on peut aussi avoir des cas particuliers en fonction des branches).
Jenkins avait tout de même un gros avantage par rapport à Bitbucker : avoir des pipelines partagés. En effet, un simple fichier de conf par projet permet d’indiquer le pipeline à utiliser.
Ce n’est pas si gênant que ça, on ne modifie pas un pipeline tous les 4 matins. Il faut bien le penser dès le début, et nous, nous avons déjà nos pipelines existants dans Jenkins.
Bitbucket propose une documentation pour aider à la création de pipeline , elle nous a permis de bien appréhender ce mécanisme en moins d’une heure et nous avons réussi haut la main notre première compilation (la description du pipeline se fait au format yaml).
La documentation des pipelines est disponible en anglais : https://support.atlassian.com/bitbucket-cloud/docs/get-started-with-bitbucket-pipelines/
Il existe un wizard avec des exemples de pipeline :
Nous avions 2 particularités :
Il est possible d’avoir des variables communes pour les projets et c’est bien pratique pour éviter de saisir des informations en dur dans nos pipelines (comme les url ou les tokens d’authentification de nos dépôts).
Ce que j’aime beaucoup, c’est qu’en cas d’erreur on peut relancer uniquement à partir de l’étape en erreur.
Imaginons que le pipeline se passe bien mais qu’il est impossible de réaliser le Docker Push à la fin, il est vraiment appréciable de relancer uniquement cette dernière étape et de ne pas avoir à attendre de nouveau la compilation et les tests automatiques.
Il est également possible de lancer des étapes en parallèle.
Bitbucket possède un connecteur payant pour envoyer des notifications dans teams.
Pour plus de liberté, nous avons implémenté notre propre connecteur dans nos pipelines avec un bouton d’action pour ouvrir directement les logs de la compilation (pratique en cas d’erreur).
Nous avons migré 100 projets git en 1 jour à 2 personnes.
En une journée, on a été capable de créer des pipelines pour :
Ce que nous avons aimé :
Ce que nous avons moins aimé :
Deckad est une société experte dans le développement de solution numérique pour les entreprises. Retrouvez nous sur les réseaux sociaux
Pépinière CCI de la Drôme
3 rue Georges Charpak
26300 Alixan
+33 (0) 7 69 31 52 04