Créez un Pipeline Heroku et exécutez des Review Apps
Objectifs de formation
Une fois cette unité terminée, vous pourrez :
- Décrire les options disponibles pour les pipelines
- Décrire les avantages de Review Apps
Étapes du pipeline
Chaque application d’un pipeline représente une des étapes du workflow de livraison continue : contrôle, développement, staging et production.
Les deux étapes que la plupart des développeurs connaissent sont :
-
Préproduction : la préproduction permet de tester les modifications dans un environnement de type production avant de les déployer en production.
-
Production : les applications de l’environnement de production sont disponibles pour leurs utilisateurs finaux.
En plus de ces deux étapes, les développeurs utilisent généralement au moins une autre étape pour vérifier chaque modification de code et pull request plus facilement. Une majorité d’entre eux utilisent l’une de ces étapes pour effectuer ce type de test :
-
Review Apps : cette option n’est disponible que si vous utilisez l’intégration GitHub et activez la fonctionnalité Review Apps sur le pipeline. Un développeur transmet ses modifications pour créer une application temporaire et partageable afin de tester un pull request spécifique. Sans cette fonctionnalité, les développeurs peuvent aussi partager ces modifications en les envoyant vers l’étape de développement.
-
Développement : un développeur effectue et teste des modifications de code sur son ordinateur local. Il peut éventuellement envoyer ce code à l’étape de développement d’un pipeline sur Heroku pour le partager avec d’autres utilisateurs.
Plusieurs applications peuvent se trouver à une même étape d’un pipeline. Par exemple, vous pouvez avoir deux applications de production avec la même base de code, mais déployées dans différentes régions afin de réduire la latence.
Pour créer un pipeline et y ajouter des applications, consultez Pipelines dans le Heroku Dev Center.
Activation et utilisation de Review Apps
Si votre code se trouve dans GitHub, vous pouvez vous connecter à votre référentiel et activer Review Apps pour votre pipeline. Vous pouvez ensuite choisir de lancer manuellement ou automatiquement une application de test temporaire chaque fois qu’un utilisateur ouvre un nouveau pull request. Les applications de contrôle sont automatiquement détruites lors de la fermeture d’un PR ; vous pouvez également choisir quand les applications obsolètes sont supprimées pour réduire davantage votre utilisation. Consultez les instructions et les coûts associés à cette fonctionnalité dans le Heroku Dev Center.
Review Apps utilise un fichier app.json
pour configurer vos applications. Ajoutez ce fichier à votre code avant d’activer Review Apps. Consultez la section Configuration et la section Schéma app.json dans le Heroku Dev Center pour en savoir plus.
Étant donné que le fichier app.json
est inclus dans votre code sur GitHub, n’ajoutez pas de valeurs de variables de configuration que vous souhaitez garder confidentielles. Au lieu de cela, définissez ces valeurs en tant que variables de configuration dans l’onglet Paramètres du pipeline.
Comme toutes les applications Heroku, chaque application de contrôle possède sa propre URL que vous pouvez saisir dans votre navigateur pour la consulter. Vous pouvez également cliquer sur Ouvrir l’application dans un navigateur en regard de l’application de contrôle sur la page du pipeline pour prévisualiser rapidement vos modifications. Vous avez la possibilité de choisir un modèle d’URL aléatoire ou prévisible lors de la configuration de vos applications de contrôle. Dans le cas d’une URL prévisible, Heroku utilise le préfixe choisi et le numéro de pull request pour créer votre application. Par exemple, si vous choisissez le préfixe exemple-prefixe
, l’ouverture du pull request no 123 crée une application de contrôle à l’adresse exemple-prefixe-pr123.herokuapp.com
.
Activation d’Heroku CI
La fonction CI native d’Heroku peut être activée sur chaque pipeline. Les dynos et les compléments utilisés pendant les tests de CI engagent des frais supplémentaires.
L’intégration avec GitHub est nécessaire pour utiliser Heroku CI. Connectez votre pipeline à votre référentiel et activez Heroku CI dans l’onglet Paramètres.
Configurez votre environnement Heroku CI en incluant un manifeste app.json
dans le répertoire racine de votre référentiel. Pendant les exécutions de tests CI, les clés définies dans l’environnement test
de ce fichier ont priorité sur les clés correspondantes dans la configuration de base de votre application.
Configuration des déploiements automatiques en préproduction
Grâce à la livraison continue, chaque modification est transmise en préproduction. Activez les déploiements automatiques sur votre application de préproduction pour automatiser cette étape chaque fois que le code est fusionné dans une branche spécifique.
Si vous utilisez l’intégration avec GitHub, vous pouvez configurer des déploiements automatiques dans l’onglet Déployer de l’application. Si vous utilisez l’environnement Heroku CI, vous pouvez le configurer de sorte que les déploiements automatiques ne se produisent qu’en cas de compilation réussie avec Heroku CI. Reportez-vous à Intégration avec GitHub pour plus d’informations.
Promotion des applications de la préproduction en production
Nous vous recommandons d’effectuer les déploiements à l’aide de la promotion de pipeline uniquement pour les applications avec des créations sans état. Les slugs sont des copies compressées et préempaquetées de votre application. Lors de la promotion vers la production, Heroku copie le slug de la préproduction sans apporter de modifications. Il n’est pas recréé pour la production. Les créations qui compilent les valeurs des variables de configuration dans le slug peuvent rencontrer des problèmes lors de leur promotion. Pour les applications impliquant des créations avec état, utilisez plutôt le déploiement fondé sur Git ou les déploiements avec GitHub standard d’Heroku.
La page du pipeline vous aide à visualiser la progression de vos applications, tout en fournissant des méta-informations sur le statut de chaque étape. Par exemple, vous pourrez voir si votre application de production exécute un code différent de votre application de staging. Cliquez sur Promouvoir en production sur l’application de préproduction que vous souhaitez promouvoir.
Vous venez d’apprendre à utiliser des applications sur un pipeline. Dans l’unité suivante, nous découvrirons Release Phase et le fonctionnement des versions.
Ressources
-
Site de développement Heroku Dev Center : Pipelines
-
Site de développement Heroku Dev Center : Intégration avec GitHub
-
Site de développement Heroku Dev Center : Review Apps (applications de contrôle)
-
Site de développement Heroku Dev Center : Heroku CI