在Jenkins中,如何在中止之前执行操作
如何在中断前调用jenkins中的某种脚本?例如,我有一个很长的操作,我想在进程超时之前截图。我想看看进程在哪里停止在Jenkins中,如何在中止之前执行操作,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,如何在中断前调用jenkins中的某种脚本?例如,我有一个很长的操作,我想在进程超时之前截图。我想看看进程在哪里停止 stage("Start") { options{ timeout(time: 1, unit: 'MINUTES') } steps { // Start long command //Screenshot 1.jpg
stage("Start")
{
options{
timeout(time: 1, unit: 'MINUTES')
}
steps {
// Start long command
//Screenshot 1.jpg
}
}
post {
always {
archiveArtifacts '1.jpg'
}
}
使用描述性管道,如您的示例中所示,将“屏幕截图”移动到
post
应该可以做到这一点
stage("Start"){
options{
timeout(time: 1, unit: 'MINUTES')
}
steps {
// Start long command
}
}
post {
always {
// take Screenshot
archiveArtifacts '1.jpg'
}
}
如果您决定尝试脚本化管道(或在当前管道上),您可以执行以下操作
try {
timeout(20) {
// Start long command
}
} finally {
// take Screenshot
}
既然你在一个天生无头的管道中提到“截图”,我想知道你指的是什么
如果您想在WebDriver、Selenium或类似软件中捕获集成测试的屏幕截图,那么应该是测试脚本—具有超时并在失败时获取屏幕截图的脚本
请详细解释一下您的场景,以便提供更好的答案。在这种情况下,屏幕截图将在关闭脚本窗口后显示。脚本启动程序时,头部有时会因错误而冻结。到了暂停时间,詹金斯中止了他们。我想知道一个错误,你可以并行运行两个步骤,共用一个头部。一个使用长时间运行的脚本,另一个使用计时器和屏幕捕获命令。为了能够在第一个阶段成功完成时停止第二个阶段,我将使用一个Env变量
Env.SCRIPT\u success
,默认情况下将其设置为false
,并在脚本成功时将其更改为true
。然后,在第二个阶段,创建一个循环,每X秒检查一次env变量,如果在Y次迭代后不是真的,则截图,然后使该阶段失败@Ацццццццццццццццццц。非常感谢。