Question

Je suis en train de configurer Hudson pour que je serai en mesure de déployer automatiquement une version (un fichier .war) à Tomcat. La construction nouvellement déployée sera ensuite utilisé par quelqu'un pour tester l'application.

Je l'ai essayé d'utiliser le déploiement Plugin pour déployer automatiquement le fichier .war, et cela fonctionne. Cependant, le travail qui construit le fichier .war fonctionnera après chaque changement scm (à chaque fois que le code est engagé). Avec le déploiement Plugin, le fichier .war serait déployé pour Tomcat chaque fois qu'une construction est faite. Parce que le code est commited souvent, cela signifie que l'application Web redémarre souvent aussi bien, et cela interrompt le processus de test.

J'apprécie le fait que Hudson dirige mes tests unitaires et fait une construction régulièrement, donc je ne veux pas changer les éléments déclencheurs de ce travail.

Je cherche une façon que je peux décider manuellement de déployer à partir d'Hudson. J'ai essayé de créer un poste distinct qui va déployer le .war du premier emploi, mais cela n'a pas fonctionné. Quelqu'un at-il quelque chose de réglage de l'expérience comme ça?

Était-ce utile?

La solution

Comment obtenir les objets

Regardez la section " Comment rollback ou redéployer une version précédente " sur Déployer Plugin . Il décrit l'idée de base. Il utilise le pour copier les objets de la construction travail à votre emploi actuel (le travail de déploiement). De là, vous faites la même chose que vous avez fait dans votre étape de construction.

Comment déclencher le deploy

Le travail de construction ne peut être déclenchée après avoir démarré le Deploy pour que d'abord un parcours de construction et que le travail de déploiement. Donc, il a quelques options:

  • déclencher manuellement la construction. L'utilisateur qui démarre le déploiement doit sélectionner une course spécifique du travail de construction.
  • déploiement prévu Cela pourrait faire partie des tâches de nuit. Le travail se déclenche à un certain intervalle (comme tous les soirs ou tous les week-end). Comme il est automatisé, le travail de déploiement devrait ramasser la dernière construction réussie (vous ne donc pas besoin d'un emploi paramétrisé). Vous n'avez pas de chance de passer un numéro de série.
  • le travail deploy obtient a déclenché chaque fois qu'une construction se termine avec succès (ne correspond pas à vos besoins, mais la liste pour compléter la liste)
  • Certains autre (ésotérique) déclenchement . Cela peut être beaucoup de différents pense par exemple à distance déclenchée en appelant l'URL de construction. L'appel peut venir d'un de vos systen billetterie, test du système de gestion de laboratoire, ou tout autre système que vous voulez. Vous pouvez également déclencher le déploiement, par des changements spécifiques dans votre système de contrôle de code source, comme changer le numéro de version (par exemple marqué par un mot-clé dans le message de commit). Ce déclencheur peut être mis en œuvre à l'intérieur ou à l'extérieur de Hudson. Il y a d'autres déclencheurs disponibles aussi. Cela inclut, mais ne se limite pas au changement de page html, changer sur une partie du système contrôlé de fichiers, message instantané, e-mail. Les trois premiers sont mis en œuvre par un plug-in Hudson. Jetez un coup d'œil à la liste des plug-in, de savoir ce qui est tout evailable ou Dans les deux cas, vous devez vous assurer que les archives d'emploi de construire tous les artefacts nécessaires pour le déploiement.

Autres conseils

J'ai plusieurs emplois hudson par projets:

  1. Un travail principal qui construit juste le projet et exécute les tests. Si elle réussit, elle lance les travaux suivants:
  2. A métriques de code travail (PMD, FindBugs, Cobertura, CheckStyle, également la production d'JavaDoc) et
  3. Un travail de déploiement qui construit le projet en utilisant mvn package -DskipTests et déploie la guerre sur tomcat

Je trouve que la séparation de ces choses plus facile, seul le premier emploi à l'écoute des changements SCM.

Cependant, une autre façon serait de laisser le 3ème emploi écouter aussi le SCM (mais avec un intervalle plus long, peut-être une heure).

scroll top