【发布时间】:2018-05-09 04:49:40
【问题描述】:
我们希望有一个管道,它构建我们的应用程序而不是暂停,在构建的应用程序经过手动测试后恢复并交付测试的应用程序。
所以我想出了使用 Input 来暂停管道的想法,如下所示:
...
stage ("Build"){
// build application here and archive it as artefact
}
timeout(time:5, unit:'DAYS') {
input message:'Approve deployment?'
}
stage ("Deliver"){
// deliver the built application
}
测试人员有 5 天的时间来测试应用程序,然后恢复管道并交付。
我的问题是,虽然构建仍在运行,但测试人员还无法访问状态页面上的工件。
那么有没有办法在日志输出中提供任何类型的下载链接,指向我在构建阶段存档的应用程序文件? 或者有没有其他好的方法可以在一个管道作业中实现这个构建->暂停->测试->恢复->交付工作流?
流水线中的测试自动化不是一个选项,因为应用程序需要在某些硬件上手动刷新。
【问题讨论】:
-
你为什么不把管道一分为二呢?体力劳动之前和体力劳动之后? (或 2 份工作 - 取决于你在那里做什么)
-
这是客户要求。我知道 2 条管道会更容易,但我们被告知至少要尝试找到一种解决方案来完成它。
-
那么也许你可以创建一个“假”作业测试并让它运行直到测试人员完成他的测试,然后在交付时你可以使用这个插件wiki.jenkins.io/display/JENKINS/Build+Blocker+Plugin来检查假测试作业是否是跑步。当测试人员完成他的测试后,他可以手动结束虚假工作。但这是解决此问题的一种令人讨厌的方法,并且将来可能会导致问题(主要是由于人为错误:p)。
-
手动恢复工作不是问题,因为我可以通过暂停来做到这一点。我的需要是在它仍在运行(暂停)时轻松访问作业的工件。
-
是的,这就是我说你需要创建另一个工作“假测试”的原因。因此,您将有 3 个工作:1. 构建和创建工件 -> 2. 假测试并等待 3. 部署。当您在工作 3 并等待 2 时。您已经拥有所有工件(如果您使用 maven 将它们存储在工件或类似的东西中,您将拥有它们)
标签: jenkins jenkins-pipeline pause artifact