如何在两个触发器成功时运行Jenkins Pipeline

lstz6jyr  于 2023-06-05  发布在  Jenkins
关注(0)|答案(1)|浏览(171)

这是我的Jenkins Pipeline

pipeline {
    agent any
    
    triggers {
        upstream 'Trigger1, Trigger2'
    }

    stages {
        stage('Hello') {
            steps {
                echo 'Hello World'
            }
        }
    }
}

我希望仅在Trigger1和Trigger2成功时运行此作业,但当前上述任何一个触发器都会启动作业。当其中一个触发时,是否有方法等待第二个触发?

oalqel3c

oalqel3c1#

没有内置的方法来做到这一点。但是,我可以想到一种不同的方法。在下游作业中,在一开始就有一个条件,它接受构建号(可以通过内置变量BUILD_NUMBER获得),并检查该数字是偶数还是奇数。如果它是奇数,然后完成这项工作,没有任何进一步。如果是均匀的,则继续整个作业。
例如,如果数字为1,则意味着这是第一个下游触发器,因此不应构建作业。如果是2,那么这是第二次调用下游作业,因此您可以继续构建它。
当然,也可能存在其他问题,比如失败的构建会增加构建计数。这只是一个开始的想法。

相关问题