我有两条管道。管道A(应用程序构建)和管道B(应用程序检查)。管道A触发管道B,并且两者同时运行。在管道B中的特定阶段之前(运行检查)我需要验证管道A是否成功。如果不成功,请等待并检查一段时间,直到管道A完成。因此,如果“A”成功,则管道B可以继续检查,否则将以失败退出。我需要知道的是,是否有任何方法可以使用管道“A“的内部版本号从管道B检查管道A的内部版本状态。我将管道A的内部版本号传递给管道B。我查找是否有任何env变量可用于状态检查,但没有找到。我将管道A的内部版本号传递给管道B。
4xrmg8kj1#
您可以创建管道B,如下所示。在这里,您可以使用waitUntil进行等待。
pipeline { agent any stages { stage('Build') { steps { script { echo "Waiting" def jobName = "JobA" def buildNum = "92" waitUntil { !isPending(jobName, buildNum) } if(getStatus(jobName, buildNum).equals('SUCCESS')) { echo "Job A is Successful" } else { echo "Job A Failed" } } } } } } def isPending(def JobName, def buildNumber) { def buildA = Jenkins.instance.getItemByFullName(JobName).getBuild(buildNumber) return buildA.isInProgress() } def getStatus(def JobName, def buildNumber) { def status = Jenkins.instance.getItemByFullName(JobName).getBuild(buildNumber).getResult().toString() return status }
1条答案
按热度按时间4xrmg8kj1#
您可以创建管道B,如下所示。在这里,您可以使用waitUntil进行等待。