Heroku - 13 Heroku Pipelines Tests

Bienvenue dans cette suite sur Heroku. Lorsque vous effectuez vos tests, il est essentiel de s'assurer que le nouveau code ne va pas casser des fonctionnalités existantes. Cette validation passe principalement par des tests automatiques exécutés à chaque arrivée de code nouveau. La solution intégrée d'Heroku qui crée un environnement dédié pour faire passer ces tests automatiquement s'appelle Heroku CI (intégration continue), elle est totalement intégrée aux Pipelines.

Le fonctionnement de Heroku CI

Lorsqu'il y a un changement de code, Heroku CI crée une nouvelle application avec un environnement éphémère pour exécuter les tests. Une fois les tests terminés, tout est détruit. À chaque commit, un environnement neuf est instancié pour exécuter le nouveau code. Vous pouvez également configurer Heroku pour bloquer le déploiement si les tests échouent : c'est une sécurité supplémentaire pour ne jamais déployer de bugs en production.

  • Environnement de test créé automatiquement à chaque commit
  • Environnement détruit après l'exécution des tests
  • Possibilité de bloquer le déploiement en cas d'échec
  • Configuration des dynos dédiés aux tests (taille, nombre)
  • Configuration différenciée par application dans un Pipeline

Vous pouvez aussi configurer les dynos utilisés pour lancer les tests. C'est particulièrement utile si votre build est conséquent et demande du temps : vous pouvez accélérer les tests en allouant des dynos plus puissants pour rendre la création du build plus rapide. Heroku CI permet d'avoir des configurations différentes pour chaque application d'un Pipeline : une application peut exiger que tous les tests passent avant déploiement, alors qu'une autre peut être déployée immédiatement sans test.

Heroku CI fonctionne avec pratiquement tous les langages et frameworks. C'est possible parce qu'Heroku suit le Test Anything Protocol (TAP) : à la fin des tests, le programme renvoie 0 si tous les tests sont passés ou 1 si au moins un test échoue. La façon dont votre framework évalue le succès n'a pas réellement d'impact tant qu'il termine par un code de retour 0 ou 1 — Heroku saura quoi faire avec ce résultat. À bientôt pour la prochaine vidéo.