Comment organiser plein de build pipeline avec Gulp, Maven et Jenkins, tout le chemin à des tests d'intégration?

J'ai un projet:

  • JS client avec un peu intéressant processus de construction. Qui comprend la compilation CSS, catenating et minifying JS et CSS, de traitement et de génération de HTML, et quelques autres étapes. Le Nœud des outils comme Grunt ou Gulp sont grands à présent.
  • Java server est une GUERRE déployé sur Tomcat. Il intègre l'ensemble de ces actifs ainsi que tout le code Java. Il a toutes sortes de tests: tests Unitaires, tests d'intégration qui peut instancier un DAO et de parler de DB, et de bout en bout, l'API tests qui en fait de parler de l'application en cours d'exécution sur Tomcat.
  • De bout en bout des tests avec le Rapporteur. Si vous n'êtes pas familier, il est un autre outil Nœud, qui encapsule le Sélénium.

Comment puis-je organiser l'ensemble de ce processus dans un esprit sain, robuste, et de manière automatisée?

Ce que j'ai en ce moment est Gorgée et Maven, avec Maven essentiellement le fait de posséder l'ensemble du processus.

  1. Il appelle Gorgée d'actifs de génération en génération-sources à l'aide de antrun (doh, troisième outil de construction!).
  2. Il exécute le Java ordinaire construire.
  3. Il démarre Tomcat avec ma GUERRE dans les pre-integration-test.
  4. Il fonctionne Java E2E tests de parler à cette tomcat avec failsafe plugin.
  5. Il appelle Gorgée de nouveau avec antrun, cette fois pour exécuter le Rapporteur tests.
  6. Il s'arrête Tomcat en post-integration-test.
  7. Il est censé vérifier les résultats des tests pour vérifier.

Ce genre de travaux, à l'exception que Maven est généralement très rigide et je sens que je vais trop loin. À l'aide de antrun appeler Gulp est un vilain tour. Il est très difficile de contrôler les dépendances entre ces mesures et le suivi de leurs résultats. Il est difficile de contrôler l'ordre des choses dans la même phase. Failsafe vérifier ne semble pas de processus externe JUnit fichiers de rapport Gulp génère. Je pourrais continuer.

Je me demande si je devrais en faire plus dans mon serveur de build (Jenkins), peut-être l'aide d'un construire un pipeline ou d'paramétrée déclenche - mais je ne l'ai jamais fait et je ne sais pas si c'est vraiment mieux.

Alors, comment voulez-vous mettre en œuvre?

  • J'ai eu une requête similaire sur les Programmeurs.SE: programmers.stackexchange.com/questions/222660
  • Quelle solution avez-vous pour? Je suis sur le point de commencer sur la même chose. Maven et Jenkins déjà partie du processus, mais je tiens à apporter gulp dans ce pour le CSS et le js compression, minification, etc
InformationsquelleAutor Konrad Garus | 2014-09-16