使用Jenkins Pipeline可以实现不中止由手动触发的另一个构建作业触发的构建作业。以下是一个示例的Pipeline代码:
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building...'
// 执行构建操作
}
}
stage('Test') {
steps {
echo 'Testing...'
// 执行测试操作
}
}
stage('Deploy') {
when {
expression {
// 判断是否是自动触发的构建作业
return !currentBuild.causes.find { it.getClass().name == 'hudson.model.Cause$UserIdCause' }
}
}
steps {
echo 'Deploying...'
// 执行部署操作
}
}
}
}
在上述示例中,我们使用了Pipeline的when
条件语句来判断当前构建作业是否是由手动触发的。如果是手动触发的构建作业,when
条件为false
,则Deploy
阶段将被跳过。如果是由其他触发原因(如定时触发、代码提交触发)触发的构建作业,when
条件为true
,则Deploy
阶段将被执行。
注意:上述示例中的when
条件判断使用了hudson.model.Cause$UserIdCause
来判断是否是手动触发的构建作业,具体的判断条件可能因Jenkins版本和插件版本的不同而有所差异。你可以根据实际情况进行调整。