Haut de page

En route pour le DevOps avec Atlassian : Automatisation (2ème partie)


Publié par
Matthew Frassetti

23 mai 2018

Faire du DevOps va bien au-delà de l’implémentation d’outils ou d’une méthodologie. Il s’agit plutôt d’un ensemble de bonnes pratiques, qui touchent tant l’humain que la technologie, qui permettent d’améliorer la communication au sein d’une équipe ou entre elles. Bien qu’il n’existe pas de recette miracle pour bien faire du DevOps, l’automatisation est l’une des clés qui vous permettra de réussir dans votre démarche.

Pourquoi l’automatisation est-elle si importante pour le DevOps ?

Dans la 1ère partie de ce blog, nous nous étions attardés sur l’importance de la transparence et de la visibilité qui sont au coeur des outils Atlassian. En résumé, pour que les équipes travaillent ensemble en bonne intelligence, la visibilité est critique car il est primordial de savoir qui travaille sur quelle branche et de connaître le statut des tâches en cours.

L’automatisation va aussi améliorer la visibilité en poussant les mises à jour en temps réel, ce qui réduit les erreurs liées aux mises à jour manuelles. Cela permet aussi de libérer du temps à l’équipe pour qu’elle puisse se concentrer sur des tâches plus importantes et soit capable de désamorcer les problèmes avant qu’ils ne surviennent.

La suite Atlassian propose des fonctionnalités d’automatisation puissantes qui sont disponibles sans développement ou app additionnelle. Plutôt pratique ! Voyons comment cela fonctionne.

Déclencheurs d’automatisation pour les workflows

De nombreux aspects de votre automatisation peuvent être configurés directement depuis votre workflow Jira. Par exemple, si nous voulons exécuter une transition sur une demande de manière automatique à chaque fois qu’un commit est fait dans votre instance Bitbucket, nous pouvons le faire en éditant le workflow Jira et en ajoutant un déclencheur.

Dans l’éditeur de workflow, sélectionnez la transition que vous aimeriez automatiser avec les commits. Pour cet exemple, le plus simple serait la transition de « Open » vers « In Progress ».

Sélectionnez ensuite « Triggers » dans la vue de transition puis cliquez sur « Add Trigger ». « Commit Created » va nous permettre d’ajouter le déclencheur au workflow pendant que la demande est dans ce statut. Une fois les modifications faites, publiez le workflow.

Attention, assurez-vous que le workflow que vous êtes en train d’éditer est bien celui assigné au projet / type de demande que vous souhaitez automatiser.

Pour vérifier le fonctionnement du déclencheur, prenez la clé de la demande d’un ticket en état Open / To do que vous souhaitez transitionner. Mettez la clé de la demande dans le message de commit de votre code. « Pushez » le code et vérifiez la demande et constatez que cela a fonctionné ! Vous n’avez plus besoin de transitionner manuellement la demande pour prévenir votre équipe que quelqu’un travaille dessus. Les demandes seront mises à jour en temps réel, procurant plus de visibilité à votre équipe. Néanmoins, il faudra bien penser à utiliser les clés de demande dans vos messages de soumission pour déclencher l’automatisation.

Vous pouvez également utiliser le déclencheur « Branch Created » pour arriver au même résultat si vous souhaitez transitionner des demandes basées lors de la création de branches.

Il s’agit là d’un exemple de déclencheur qui peut être utilisé pour automatiser vos workflows. Cela va aussi fonctionner avec GitHub et Fisheye si vous avez ces outils intégrés à votre Jira.

Utiliser les post fonctions de workflows

Les post fonctions sont aussi un moyen efficace d’automatiser les tâches que vous préféreriez oublier. En utilisant les post fonctions conjointement avec les déclencheurs vous deviendrez le gourou de l’organisation des workflows.

Combien de fois avez-vous dû assigner la demande à un membre d’une autre équipe pour vérification ou validation après l’avoir transitionnée dans Jira ? Si c’est fréquent, vous avez sans doute au moins une fois déjà oublié de l’assigner à la bonne personne, surtout si vous suivez un grand nombre de demandes. Peut-être avez-vous des demandes qui sont toujours assignées à la même personne, par défaut. Assigner ces demandes de façon automatique dans le workflow serait un gain de temps précieux non ? Voyons comment faire.

Comme précédemment, navigons jusqu’à la transition que vous voulez éditer. Dans la fenêtre de transition, sélectionnez “Post Functions ». Puis cliquez sur « Add Post Function”.

 

Ensuite cliquez sur “Update Issue Field” puis “Add. »

 

 

Depuis cette vue nous pouvons définir quel champ de la demande nous voulons automatiquement mettre à jour lors d’une transition. Petite précision, vous pouvez aussi sélectionner la transition “Create Issue”. Pour notre exemple, nous allons laisser l’Assignee sélectionné dans le menu déroulant et ensuite saisir le nom de l’utilisateur que nous voulons automatiquement assigner lors de la transition. Cliquez ensuite sur « Add » et publiez le workflow.

 

 

Cet exemple est particulièrement utile si vous voulez assigner automatiquement la demande à l’utilisateur qui doit valider ou gérer le ticket. Si vous avez un déclencheur qui vous permet de pousser le code en revue quand vous le commitez, vous pouvez soumettre le code, transitionner la demande et affecter le ticket automatiquement à la bonne personne, tout cela en un clic.

Workflows de branches

Avec la suite Atlassian il est facile de créer des branches de code directement depuis les tickets Jira. Pour commencer, ouvrez une demande Jira. Assignez-vous la demande puis sélectionnez “Create branch” sur la droite du panneau développement.

 

 

Vous pouvez configurer plusieurs options et créer des branches directement depuis le ticket Jira. Cela apporte plus de visibilité et permet d’acter qui travaille réellement sur une demande.

Workflows Crucible et Jira

De façon similaire, vous pouvez personnaliser vos workflows dans Jira pour transitionner des demandes d’un statut vers un autre lorsqu’un changement se produit sur Crucible. Les étapes sont les mêmes que précédemment.

 

Sélectionnez la transition que vous voulez modifier et sélectionnez le déclencheur parmi ceux proposés. Les actions suivantes sont disponibles dans Crucible automation:

  • Review started : une revue de code a démarré
  • Submited for approval : la revue a été envoyée pour validation
  • Review rejected : la revue a été rejetée
  • Review abandoned : la revue a été abandonnée
  • Review closed : la revue a été clôturée
  • Review summarized : la revue est passée au statut « Summarized »

Pour plus d’informations, consultez la documentation Atlassian.

 

Bonus : Intégrez Hipchat dans votre démarche DevOps

Nous proposons ici un conseil pour tous ceux qui veulent améliorer la visibilité au sein de leur équipe DevOps. Prenons un exemple concret.

Disons que vous avec un type de demande dans Jira dédié aux urgences, de celles qui peuvent paralyser votre entreprise. Vous pouvez configurer Hipchat pour automatiquement pousser les tickets Jira liés à cette urgence dans une room spécifique afin d’alerter immédiatement toutes les personnes concernées.

Pour faire cela, allez dans les options de configuration Hipchat depuis les paramètres système de votre instance Jira. Sélectionnez la room que vous voulez notifier et cliquez sur « Add ». Vous pouvez ensuite configurer les options pour préciser le type de demande qui enverra des notifications dans la room.  Vous pouvez aussi faire une configuration avancée avec du JQL pour préciser d’autres détails.

 

Sélectionnez ensuite une action, un paramétrage de notification et c’est tout. Vous pouvez aussi faire cela pour notifier les utilisateurs d’une transition de demande d’un statut à un autre. Soyez créatif et configurez Hipchat selon vos besoins.

En route pour le DevOps

Les produits Atlassian sont si flexibles et personnalisables qu’ils ont à peu près tout ce qu’il faut pour mettre votre équipe sur la voie du DevOps. Mais nous savons bien, par expérience, que la route vers le DevOps implique un alignement des personnes, des process et des outils pour que cela fonctionne dans votre entreprise. Si vous cherchez un expert pour vous aider à déployer une infrastructure DevOps, vous pouvez faire confiance à Valiantys. Contactez-nous pour parler avec l’un de nos consultants certifiés Atlassian.