Objectif : ce tutoriel présente les premières étapes pour mettre en place une intégration continue avec CodeShip sur un de vos projets. Il vous permettra de créer l'environnement nécessaire pour lancer une suite de tests à chaque nouveau commit sur une branche nouvelle ou existante de votre projet.
Niveau : débutant.
Pré-requis : un compte GitHub.
- Création du compte CodeShip
- Ajout d'un projet
- Configuration du CI
- Vérification de l'implémentation sur CodeShip
- Ressources
-
Allez sur l'url https://app.codeship.com/sessions/new et connectez-vous avec votre compte GitHub:
-
Dans la fenêtre de permission, autorisez l'application CodeShip :
-
Créez votre organisation en lui donnant le nom que vous souhaitez et cliquez sur
Create Organisation
:
Pour permettre à CodeShip de se lancer régulièrement en fonction de nouveaux commits sur votre projet, il faut paramétrer une connexion entre CodeShip et votre dépôt Git sur GitHub.
-
Pour ajouter un projet dans CodeShip, allez sur l'url https://app.codeship.com/projects et cliquez sur le bouton
New project
en haut à droite de votre fenêtre : -
Choisissez l'option GitHub comme source de votre projet :
-
Installez l'application GitHub pour CodeShip en cliquant sur le lien
install our GitHub App
: -
Dans la fenêtre de permission pour ajouter l'application CodeShip, renseignez le dépôt Git que nous venons de forker et validez l'installation :
-
Sélectionnez votre organisation et votre dépôt Git. Puis, cliquez sur
Connect
: -
Puis, choisissez l'option de base pour le type de projet :
L'offre basique de CodeShip va nous permettre de lancer nos tests sur une machine Ubuntu avec plusieurs langages par défaut installés dessus.
L'un des points importants pour mettre en place une intégration continue sur un projet, c'est d'avoir une suite de tests solides à lancer sur un environnement donné. Il faut donc pouvoir installer l'environnement que l'on veut sur CodeShip, ainsi que lancer les tests nécessaires.
-
Dans un premier temps, nous allons indiquer à CodeShip quelles commandes sont nécessaires pour installer les dépendances de notre application, comme vous l'avez fait précédemment pour votre environnement de développement. Pour cela, dans la section
Setup commands
, écrivez :bin/install
-
Ensuite, nous allons créer un "pipeline". Dans CodeShip, un "pipeline" est un ensemble de commandes qui sont lancés à chaque fois qu'une modification apparait sur votre dépôt Git (nouvelle branche, nouveau commit, etc.). Pour cela, cliquez sur le lien
Add pipeline
et donnez un nom à votre "pipeline" : -
Puis, cliquez sur le lien
Save changes
: -
Un nouveau panneau avec votre "pipeline" a été créé. Dans ce dernier, écrivez la commande pour lancer les tests sur notre projet :
bundle exec rspec hello_world_spec.rb
-
Puis, cliquez sur
Save and go to dashboard
:
La configuration de votre intégration continue de base est prête !
Maintenant les développeurs et développeuses peuvent fixer rapidement des conflits et les ajouter le plus vite possible sur la base de code commune, à savoir la branche
master
dans la plupart des cas.Pour comprendre son impact direct sur un projet, nous allons créer ensemble une pull request, vérifier l'exécution de CodeShip dessus et merger cette pull request dans
master
.
-
En local (ou sur Codeanywhere), créez une nouvelle branche
update-readme
sur votre dépôt :git checkout -b update-readme
-
Avec votre éditeur préféré, ajoutez une modification sur le fichier
README.md
(sur Codeanywhere, il suffit de double-cliquer sur le fichier pour pouvoir l'éditer): -
Ajoutez votre modification et poussez-la sur le dépôt distant sur GitHub :
git add README.md git commit -m 'Update README :sunflower:' git push origin update-readme
-
Sur GitHub, lancez la création d'une nouvelle pull request à partir de cette nouvelle branche :
-
Utilisez la branche
master
de votre propre dépôt pour créer cette pull request : -
Créez votre pull request :
-
Sur votre pull request, vous pouvez voir un nouvel encart qui liste ce que GitHub appelle les "checks". Ces "checks" correspondent à toutes les étapes de CI que vous allez connecter à votre dépôt. Vous pouvez cliquer sur
Show all checks
pour voir le CI CodeShip que vous venez de connecter : -
En cliquant sur le lien
Details
, vous serez redirigé sur CodeShip pour accéder au déroulement des différentes étapes que vous avez configuré pour votre intégration continue : -
Sur CodeShip, l'interface vous liste toutes les commandes lancées pour construire votre application et lancer les tests :
-
Retournez sur votre interface CodeShip et cliquez sur l'onglet
Builds
dans le menu. Vous pouvez voir votre build soit en cours d'exécution, soit en réussi.
-
Retournez sur votre pull request sur GitHub. Vous pouvez y voir également directement l'état de votre build :
-
Maintenant que vous êtes assurés que votre pull request n'a pas de conflit avec la branche
master
et qu'elle passe bien tous vos tests de façon automatique, vous savez que vous pouvez merger votre pull request en toute tranquilité. Cliquez surMerge pull request
: -
Retournez sur l'interface CodeShip et cliquez sur l'onglet
Builds
. Vous pouvez voir qu'un nouveau build s'est lancé sur la branchemaster
comme vous venez de merger votre pull request :
Voilà ! Vous avez maintenant une intégration continue sur votre projet. Vous pouvez l'améliorer en y ajoutant d'autres étapes (linting, convention de code, etc.), reprendre ce tutoriel pour l'adapter à votre propre projet ou vous plonger dans les autres modules de ce dépôt pour découvrir d'autres outils ou creuser davantage les concepts liés à l'intégration continue.