Résumé
Ce tutoriel part de zéro: une application Quarkus générée, un dépôt GitLab, trois applications Heroku pour la staging, la pré-production et la production, et un seul pipeline pour les servir toutes. L’objectif est de montrer, étape par étape, comment un pipeline sérieux se construit, pas seulement comment il déploie.
Le cœur du montage est la correspondance entre les sources et les environnements: la branche staging déploie sur l’application de staging, master sur la pré-production, et seuls les tags protégés, commençant par v, déclenchent la production. Les variables Heroku sont protégées et masquées, donc injectées uniquement dans les branches et les tags protégés; personne ne peut déployer en production depuis une branche quelconque ni retirer un tag déjà posé.
Le reste est de l’hygiène de pipeline: des étapes build, test et deploy sur une image Java 11, un job de déploiement caché dont trois jobs héritent en ne changeant que l’application cible et la règle de déclenchement, un cache Maven indexé par projet pour que les pipelines suivants ne retéléchargent rien, et les modèles GitLab de détection de secrets et d’analyse statique, ceux qui sont disponibles sans licence payante.
Le dépôt qui accompagne l’article garde une branche par étape, pour suivre l’évolution du pipeline. Les suites possibles sont nommées: publier les artefacts dans un registre, construire et stocker une image de conteneur.
Idées clés
- Un seul pipeline, trois environnements: la branche staging, la branche master et les tags protégés déterminent la cible de chaque déploiement.
- Les variables protégées et masquées ne sont injectées que dans les branches et les tags protégés, ce qui verrouille le déploiement en production.
- Un job de déploiement caché, hérité trois fois, garde le pipeline court: seules l’application cible et la règle de déclenchement changent.
- Le cache Maven par projet et les analyses de sécurité gratuites de GitLab rendent le pipeline plus rapide et plus sûr sans licence supplémentaire.
Pourquoi j’ai écrit cet article
Le but de ce tutoriel est de créer et de déployer pas à pas une application simple avec Quarkus, en utilisant un pipeline GitLab-CI et les services managés d’Heroku.