Jenkins 如何在管道外运行触发器另一个作业
我有三份工作正在准备中。无论何时任何人由于内部帐户锁定而失败,都必须触发构建后操作。在构建后操作中,我提到了在构建失败时触发。我编写了一个机器人测试来解锁帐户,并编写了一个shell脚本来调用这个测试。 我在构建后操作的两个作业中调用此模板,并在同一节点上构建它。但我发现此构建后操作保持在挂起状态,jenkins正在触发下游项目。如何使Jenkins在当前作业失败时运行生成后操作Jenkins 如何在管道外运行触发器另一个作业,jenkins,jenkins-plugins,jenkins-pipeline,Jenkins,Jenkins Plugins,Jenkins Pipeline,我有三份工作正在准备中。无论何时任何人由于内部帐户锁定而失败,都必须触发构建后操作。在构建后操作中,我提到了在构建失败时触发。我编写了一个机器人测试来解锁帐户,并编写了一个shell脚本来调用这个测试。 我在构建后操作的两个作业中调用此模板,并在同一节点上构建它。但我发现此构建后操作保持在挂起状态,jenkins正在触发下游项目。如何使Jenkins在当前作业失败时运行生成后操作 如何实现这一点?您可以使用种子作业的“传播”属性 简单的例子: Map jobResults = [:] pipe
如何实现这一点?您可以使用种子作业的“传播”属性 简单的例子:
Map jobResults = [:]
pipeline {
agent any
stages {
stage('Build seedjob 1') {
steps {
script {
String seedJobName = 'testjob1'
def seedJob = build job: seedJobName, propagate: false
jobResults[seedJobName] = seedJob.result
echo "Result of ${seedJobName}: ${seedJob.result}"
}
}
}
stage('Build seedjob 2') {
steps {
script {
String seedJobName = 'testjob2'
def seedJob = build job: seedJobName, propagate: false
jobResults[seedJobName] = seedJob.result
echo "Result of ${seedJobName}: ${seedJob.result}"
}
}
}
}
post {
success {
script {
if(jobResults['testjob1'] == 'FAILURE') {
echo "Running another job"
build job: 'another-job1', propagate: true
}
if(jobResults['testjob2'] == 'FAILURE') {
echo "Running another job"
build job: 'another-job2', propagate: true
}
}
}
}
}