Aller au contenu

Auto-déploiement depuis Git / SVN

Auto-déploiement par interrogation de dépôts Git et SVN sur Stack Harbor PaaS — configuration, intervalle, résolution de conflits et suivi des exécutions d'auto-mise à jour.

L’auto-déploiement est le mécanisme par interrogation de la plateforme pour le déploiement continu depuis un dépôt Git ou SVN. Après avoir enregistré un dépôt dans le gestionnaire de déploiement et activé l’option Check and auto-deploy updates, la plateforme vérifie périodiquement le dépôt pour de nouveaux commits et redéploie quand des changements sont détectés.

Contrairement aux hooks côté serveur Git, l’auto-déploiement fonctionne côté plateforme et ne requiert aucune configuration sur le dépôt. Il supporte aussi SVN, contrairement aux approches basées sur webhook.

Pour un déploiement déclenché par push (sans délai d’interrogation), voir l’add-on Git-Push-Deploy.

Préparer l’environnement

L’auto-déploiement requiert :

  • Un environnement avec un palier de serveur applicatif (PHP, Ruby, Python, Node.js, Go ou Java).
  • Pour les projets Java, un nœud de build Maven additionnel dans le même environnement. Le nœud Maven gère l’étape de build et pousse l’artefact résultant vers le serveur applicatif. Pour les autres runtimes, le serveur applicatif gère le déploiement directement.

Cette page utilise la voie Maven comme exemple. Les autres runtimes suivent le même flux de dialogue, sans les options spécifiques à Maven.

Ajouter un projet avec auto-déploiement

Dans l’environnement, cliquez sur Add project à côté du nœud approprié — Maven pour Java, ou le serveur applicatif pour les autres runtimes.

Dans la boîte de dialogue, basculez vers l’onglet correspondant à votre type de VCS (Git ou SVN) et remplissez :

  • URL — l’URL du dépôt.
  • Authentication — identifiants, jeton ou clé SSH, selon ce que le dépôt requiert.
  • Context — le chemin où l’application doit être déployée.

Pour les projets Java routés via Maven, remplissez aussi :

  • Name — nom du projet.
  • Environment — l’environnement où l’artefact de build doit être déployé.

Les paramètres restants correspondent au guide de déploiement pour les déploiements VCS.

Activer l’auto-déploiement

Cochez Check and auto-deploy updates. La section dépliée révèle l’intervalle d’interrogation :

  • Check every (min) — fréquence en minutes à laquelle la plateforme vérifie le dépôt pour de nouveaux commits.

Réglez l’intervalle selon la fréquence de vos commits et la rapidité voulue pour les déploiements. Un intervalle d’1 minute donne des déploiements quasi-immédiats ; un intervalle de 1440 minutes donne des déploiements quotidiens.

Notes :

  • Si l’intervalle d’interrogation est plus court que le temps requis pour construire et déployer, la prochaine vérification attend en file jusqu’à ce que l’opération en cours se termine.
  • Pour les paliers de serveur applicatif à plusieurs nœuds, revoyez la séquence de mise à jour multi-conteneurs avant de resserrer l’intervalle.

Options additionnelles

La boîte de dialogue expose plusieurs options qui affectent le comportement de l’auto-déploiement :

  • Checkout now — présent pour les runtimes non-Java. Contrôle si le projet est déployé immédiatement à l’enregistrement, ou si le premier déploiement a lieu au prochain cycle d’interrogation (ou manuellement).
  • Auto-resolve conflict — actif par défaut. Se comporte comme git reset --hard : si un fichier a divergé entre le dépôt et le serveur applicatif, la copie côté serveur applicatif est écrasée par la version du dépôt. Les éditions locales sur le serveur applicatif sont écartées. Laissez-le actif sauf raison particulière de conserver des éditions côté serveur.
  • Enable zero-downtime deployment — PHP uniquement. Quand actif, le choix est mémorisé pour chaque auto-déploiement suivant. Évite les interruptions pour les applications déployées dans le contexte ROOT.

Cliquez sur Add pour confirmer.

Suivre les exécutions d’auto-déploiement

Chaque exécution d’auto-déploiement est journalisée. Le fichier journal est nommé vcs_update et vit sur :

  • Le nœud de build Maven pour les projets Java.
  • Le serveur applicatif pour les projets non-Java.

Ouvrez Logs sur le nœud pertinent pour inspecter l’historique d’interrogation, la sortie de build (pour Java) et le résultat du déploiement.

Ajuster un projet configuré

Pour changer un paramètre après l’enregistrement — changer de branche, modifier l’intervalle d’interrogation, basculer le zéro interruption — naviguez vers l’environnement et cliquez sur Edit à côté de l’entrée du projet. La boîte de dialogue s’ouvre avec les valeurs courantes peuplées. Ajustez et cliquez sur Apply.

Quand utiliser auto-déploiement vs déclenché par push

  • Auto-déploiement — fonctionne avec n’importe quel fournisseur Git ou SVN. Délai d’interrogation acceptable (1 minute et plus). Configurable par environnement.
  • Déclenché par push (Git-Push-Deploy) — GitHub et GitLab uniquement. Zéro délai d’interrogation. Requiert un jeton d’accès personnel pour configurer le webhook.

Pour la plupart des flux, le déclenchement par push est préférable quand le fournisseur le supporte. L’auto-déploiement comble l’écart pour SVN et pour les fournisseurs Git sans support webhook.

Voir aussi