我正在尝试设置各种 Jenkins 管道,其最后阶段始终是运行一些验收测试。长话短说,所有产品的验收测试和测试数据(其中大部分是共享的)都被签入同一个存储库,大小约为 0.5 GB。因此,似乎最好为验收测试提供一个单独的工作,并通过每个管道的“构建”步骤来触发它,并使用适当的参数来运行相关测试。 (有时重新运行这些测试而不重建产品也很有用)
stage('AcceptanceTest') {
steps {
build job: 'run-tests', parameters: ..., wait: true
}
}
到目前为止,我发现我可以:
- 正常触发作业。但这需要一个额外的代理/执行者,
似乎没有一种方法可以告诉它重用来自
构建(主管道)。两个管道都以“agent { label 'master' }”开头,但是
似乎意味着“在与主节点匹配的节点上分配一个新代理”。
- 使用“wait: false”参数触发作业。这不
阻止执行程序,但这确实意味着我无法报告执行程序的结果
在主管道中进行测试。给人的印象是测试
舞台总是成功的。
有没有更好的办法?
我似乎已经解决了这个问题,通过在主管道的顶部添加“agent none”并将“agent { label 'master' }”移动到构建阶段。然后,我可以在没有代理的情况下离开“AcceptanceTest”阶段,并像以前一样在“运行测试”作业中定义它。我从文档中得到的印象是,如果你将代理分阶段放置,那么所有阶段都需要有一个代理,但情况似乎并非如此。对于这个用例来说这是幸运的......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)