Qu'est-ce que Bitbucket ?
Bitbucket est un service proposé par la société Atlassian, qui permet d'héberger et de versionner des fichiers à l'aide des technologies suivantes Git. Il est bien connu dans le monde de l'entreprise, facile à utiliser, et permet une intégration parfaite avec Jira, un système de suivi bug développé par la même société mère.
La gestion des dépôts Git se fait à partir de l'interface web du service SaaS, mais un logiciel de bureau est disponible pour effectuer les opérations de mise à disposition et de livraison des fichiers. Il s'agit de Sourcetree.
Pour les besoins de cet article, le logiciel Sourcetree logiciel a été configuré en anglais pour plus de clarté sur les termes originaux de Git : Stage, Commit, Pull, Push, Fetch, Branch, Merge, Stash. Par ailleurs, tous les termes de l'application ne sont pas traduits de l'anglais.
Pour les besoins de cet article, il est donc nécessaire de disposer d'un compte utilisateur Bitbucket, et du logiciel Sourcetree en mode connecté. La connexion de Sourcetree avec le compte Bitbucket peut se faire via les identifiants de connexion, ou via des jetons d'API qui sont créés sur le back-office Bitbucket dans Paramètres personnels > Mots de passe de l'application > Créer des mots de passe de l'application.
SourceTree a été configuré pour utiliser l'installation "système" de Git et non la version intégrée qui peut parfois causer des problèmes d'authentification pour les clones de référentiel.
Mise en place d'un projet Agilitest géré avec Git
La première étape consiste à créer un dépôt Git depuis l'interface web de Bitbucket ou depuis le logiciel Sourcetree en mode connecté.
Créer un référentiel vide
Depuis le logiciel, allez dans l'onglet Local, cliquez sur le bouton Créer.
Saisissez le chemin d'un dossier vide destiné à contenir le référentiel sur le disque dur local, ainsi que le nom du référentiel (ici référentiel-test). Cochez "Create Repository On Account " et sélectionnez le compte Bitbucket sur lequel synchroniser le référentiel (Account, Owner, Description). Cochez"Is Private" pour éviter de publier votre contenu en open-source à la vue de tous.
Mise en place d'un projet Agilitest dans le référentiel
En fonctionnement local, sans Git, Agilitest vous permet de créer de nouveaux projets. Ces projets sont alimentés automatiquement avec une arborescence par défaut qui comprend les libs, src, target, etc.
Mais dans ce cas, nous avons commencé par créer le dossier vide du projet (pour en faire un référentiel). Nous devons donc copier les éléments d'un projet vide dans notre dossier de référentiel Git (ici, référentiel-test). Une façon de le faire est de créer le projet repository-rest-2 dans Agilitest et de copier et coller son contenu dans repository-test. Faites attention cependant à mettre à jour les fichiers README.md, .atsProjectProperties, et pom.xml pour adapter le nom correct du projet.
Une autre façon est de créer d'abord le projet Agilitest, de déplacer son contenu ailleurs, d'initialiser le dépôt Git, de remettre son contenu, puis de Stage et Commit le dépôt.
Premier engagement
À cette étape, nous sommes au niveau zéro du projet et prêts à commencer. Il est temps de s'engager.
Pour ce faire, allez à Sourcetree : Unstaged files > Stage all puis cliquez sur le bouton Commit en bas à droite. Veillez à ne pas confondre ce bouton avec celui qui se trouve en haut à gauche.
Le projet est donc "instantané" dans son état initial et, dans le futur, il sera possible de revenir à cet état. Pour synchroniser le dépôt et ses commits sur le serveur Bitbucket, cliquez sur l'icône"Push".
Une question qui revient souvent est de savoir à quelle fréquence il faut commiter. Pour répondre à cette question, voyons la notion de commits atomiques, qu'il est conseillé de respecter :
- Un commit ne concerne qu'une seule tâche : un test maintenance, une évolution d'un test ATS , un nouveau scénario ATS , etc.
- Un commit ne rompt pas la cohérence du référentiel en empêchant l'exécution des tests ou de la campagne.
- Un commit doit être associé à un message concis et explicite.
Possibilités offertes par cette configuration
Les possibilités offertes par ce dépôt Git Bitbucket sont les mêmes que pour tout dépôt Git :
- Versioning des projets Agilitest et en particulier des fichiers .ats .
- Le travail collaboratif entre plusieurs profils d'automatisation sur un même projet, et en particulier la notion de Fusion.
- Synchronisation des dossiers du projet entre le référentiel Git, les rôles d'automatisation et le serveur d'exécution. Git est donc un pilier de la chaîne CI/CD.
Notez que la conservation des rapports est généralement gérée par Jenkins, avec la conservation des artefacts de chaque lancement de tâche (#1, #2 etc), plutôt que par le versionnement des fichiers de rapport d'exécution.