Bamboo est à Atlassian ce que le couple Build VNext + Release Management est à Visual Studio Team Services : une solution de build d’applications d’intégration/livraison/déploiement continu.
C’est une très bonne alternative à la solution de VSTS qui gagne en popularité, et Microsoft l’a bien compris. Face à ceci Microsoft a mis en place un Service Hook permettant d’utiliser de façon transparente Bamboo tout en utilisant l’un des contrôles de code source fourni par Microsoft. Nous allons voir dans ce billet comment configurer et utiliser Bamboo et VSTS conjointement.
NB : Dans le cas où le contrôle de source utilisé est Team Foundation Version Control (TFVC) et non GIT, il faudra préalablement installer l’extension TFS Repository (https://marketplace.atlassian.com/plugins/com.stellarity.bamboo.tfs-repository-plugin/server/overview) sur le serveur Bamboo.
Avant toutes choses, même si Bamboo est sur certains points plus évolué que le système de build VNext, il est important d’une manière générale de mesurer les conséquences de sa mise en place. La force de Visual Studio ALM (et des produits Microsoft en général) reste la synergie qu’ils ont les uns avec les autres, supprimer ou remplacer une brique revient à se couper d’énormément de fonctionnalités très utiles indisponibles sur d’autres plateforme. Remplacer la build fera par exemple perdre des synergies côté portail d’équipe, MTM, Lab Management… (et il en va de même pour tous les composants)
Configurer l’authentification à VSTS
La première étape consiste à gérer l’authentification alternative afin que d’autres services (ici Bamboo) puissent se connecter à la souscription VSTS. Pour cela allez dans le profil utilisateur -> Security -> Alternative authentication credentials (https://domain.visualstudio.com/_details/security/altcreds), et entrez le mot de passe désiré (attention celui-ci est aussi critique pou VSTS que le mot de passe du compte live).
Lier VSTS à Bamboo
Maintenant que Bamboo peut techniquement se connecter à VSTS, il est temps de lier le tout. Direction la page d’administration de Bamboo puis allez dans l’onglet Linked repositories (https://domain.atlassian.net/builds/admin/configureGlobalRepositories!default.action). Ajoutez un repository, et choisissez le provider adapté au contrôle de source du projet VSTS. La subtilité se retrouve dans les identifiants, ici ce ne sera pas les identifiants de connexion à la souscription VSTS (à savoir le compte Microsoft), mais les identifiants de la connexion alternative réalisés précédemment.
Une fois ceci fait, Bamboo est capable de réaliser n’importe quelle build en récupérant les sources de VSTS. Il suffira, lors de la création d’une build, de sélectionner comme repository la souscription VSTS configurée précédemment.
Créer le Service Hook Bamboo
Actuellement il est possible de créer une build, mais malheureusement les événements de déclenchement de Bamboo liés à des actions sur le contrôle de source ne sont pas fonctionnels. Donc comment faire une intégration continue ? Simplement en quelques secondes avec les Services Hooks !
Allez dans les configurations du projet -> Service Hooks et créez un hook Bamboo.
Microsoft propose de se baser sur 2 événements :
- A la finalisation d’une build : à éviter dans la mesure du possible afin de ne pas avoir 2 systèmes de builds à maintenir
- Lorsqu’un code est push sur le contrôle de code source
A l’écran suivant il est demandé de spécifier le scope du Service Hook.
Et enfin les identifiants de connexion (ici ceux de bamboo, le UserName est visible dans le profil Atlassian https://domain.atlassian.net/builds/profile/userProfile.action ) et le plan déclenché par le Hook.
Conclusion
Comme nous avons pu le voir, il est très simple de lier Bamboo à VSTS et il en va de même avec la majorité des services possédant nativement un Service Hooks dans VSTS.
Microsoft prévoit dans son optique d’ouverture aux autres systèmes de nombreux Service Hooks. Si actuellement un produit n’est pas encore géré par VSTS Microsoft propose un modèle générique de Hook permettant de lier n’importe quelle solution moyennement un peu de développement, mais cela fera parti d’un autre article…