这是我的Jenkins Pipeline
pipeline {
agent any
triggers {
upstream 'Trigger1, Trigger2'
}
stages {
stage('Hello') {
steps {
echo 'Hello World'
}
}
}
}
我希望仅在Trigger1和Trigger2成功时运行此作业,但当前上述任何一个触发器都会启动作业。当其中一个触发时,是否有方法等待第二个触发?
1条答案
按热度按时间oalqel3c1#
没有内置的方法来做到这一点。但是,我可以想到一种不同的方法。在下游作业中,在一开始就有一个条件,它接受构建号(可以通过内置变量
BUILD_NUMBER
获得),并检查该数字是偶数还是奇数。如果它是奇数,然后完成这项工作,没有任何进一步。如果是均匀的,则继续整个作业。例如,如果数字为1,则意味着这是第一个下游触发器,因此不应构建作业。如果是2,那么这是第二次调用下游作业,因此您可以继续构建它。
当然,也可能存在其他问题,比如失败的构建会增加构建计数。这只是一个开始的想法。