无论如何,在收到通知之前,可以暂停Jenkins作业。理想情况下还有一个有效载荷?
我有一个"测试"做了大量远程测试的工作,我希望等到测试完成后,我通过curl发送带有包含测试成功代码的有效负载的HTTP通知。
这是否可以使用任何默认的Jenkins插件?
答案 0 :(得分:0)
如果Jenkins 2.x是您的选择,我考虑考虑编写管道工作。
请参阅https://jenkins.io/doc/book/pipeline/
也许你可以创建一个包含多个阶段的管道,其中:
至于将有效负载从一个阶段传递到另一个阶段,这也是可能的 - 对于退出代码和字符串,您可以使用Groovy变量,对于文件,我相信您可以将阶段归档文件作为神器;然后,后续阶段可以访问工件。
或者,正如Hani在评论中提到的那样,您可以创建两个Jenkins作业,并让您的测试(由第一个作业启动)使用Jenkins API在成功完成后启动第二个作业。
正如您所建议的那样,curl可用于通过API触发作业,或者您可以将Jenkins API包装程序包用于您的首选语言(我已成功使用Python jenkinsapi包进行此类工作:http://pythonhosted.org/jenkinsapi/)
如果您需要将API客户端代码中的参数传递给第二个Jenkins作业,可以使用Jenkins内置的参数化构建功能将参数添加到第二个作业:https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Build