我们有一个Jenkins CI服务器,当它检测到签入时,它会从SVN构建我们的应用程序的war文件,在成功构建之后,我们使用允许我们手动部署应用程序的Jenkins作业,在内部它将运行木偶来移动战争并在需要时重新启动容器。
另一方面,我们有一个Jenkins作业,它构建一个maven项目,其中包含一组包含在我们的应用程序中的REST API的soapui功能测试。当然,这些测试要求在执行之前将应用程序部署在服务器中。
测试使用maven命令运行,如下所示:
mvn test
我想要的是让木偶在成功部署战争后触发詹金斯的工作,这怎么能实现呢?
我们使用类似于此处使用的清单http://www.tomcatexpert.com/blog/2010/04/29/deploying-tomcat-applications-puppet
基本上,这个定义正在进行部署:
define tomcat::deployment($path) {
include tomcat
notice("Establishing http://$hostname:${tomcat::tomcat_port}/$name/")
file { "/opt/apache-tomcat-7.0.47/webapps/${name}.war":
owner => 'root',
source => $path,
}
}
我想我可以在该清单中链接一个exec并运行CLI命令或使用curl调用Jenkins REST接口,正如Slav在他的回答中所建议的那样
答案 0 :(得分:1)
詹金斯可以被触发through the CLI。在浏览器中转到您的服务器,以获取可从CLI调用的完整命令列表http://<your-jenkins-server/cli
。
您还可以通过 HTTP API calls 触发Jenkins。您不需要wget
以外的任何内容。