我有一个项目:
JS客户端有一些有趣的构建过程.这包括编译CSS,连接和缩小JS和CSS,生成和处理HTML以及其他一些步骤.像Grunt或Gulp这样的Node工具非常棒.
作为部署在Tomcat上的WAR的Java服务器.它包括这些资产以及所有Java代码.它具有各种测试:单元测试,可以实例化DAO并与数据库通信的集成测试,以及实际与Tomcat上运行的应用程序通信的端到端API测试.
使用Protractor进行端到端测试.如果你不熟悉,它是包装Selenium的另一个Node工具.
如何以健全,强大和自动化的方式组织整个过程?
我现在拥有的是Gulp和Maven,Maven基本上拥有整个过程.
它使用antrun(doh,第三个构建工具!)在生成源中调用Gulp资产生成.
它运行常规Java构建.
它在预集成测试中使用我的WAR启动Tomcat.
它运行Java E2E测试,使用故障安全插件与该tomcat通信.
它再次召唤Gulp,这次是进行量角器测试.
它在后集成测试中关闭了Tomcat.
它应该验证测试结果.
除了那个Maven之外,那种作品通常非常严格,我觉得我太过分了.使用antrun来调用Gulp是一个丑陋的伎俩.很难控制这些步骤之间的依赖关系并监控其结果.在同一阶段很难控制事物的顺序.故障安全验证似乎不处理Gulp生成的外部JUnit报告文件.我可以继续
我想知道我是否应该在我的构建服务器(Jenkins)中做更多,可能使用构建管道或参数化触发器 - 但我从来没有做过,我不确定这是否真的更好.
那么,你将如何实现它?