groovy 如何在包含构建作业信息的阶段内分配变量名称,以便在另一个阶段的构建作业中使用

yebdmbv4  于 7个月前  发布在  其他
关注(0)|答案(1)|浏览(33)

我想有一个单一的工作开始了一堆其他工作使用管道。我面临的问题是,其他作业需要来自同级作业和上游作业的作业信息。以下是我到目前为止所做的:

def x = ""
def y = ""
def i = ""
def q = ""
pipeline {
    agent any
    stages {
        stage(...){
            parallel {
                stage(...) {
                    steps {
                        build job1
                        **x = <grab job1's name>
                        y = <grab job1's build number>**
                    }
                }
                stage(...) {
                    steps {
                        build job2 **USING job1's name and build number as parameters** in x and y
                        i = <grab job2's name for later>
                        q = <grab job2's build number for later>
                    }
                }
            }
        }
    }
}

这可能吗?最好的方法是什么?
请参阅上面的代码,以参考我所尝试的。

l5tcr1uw

l5tcr1uw1#

为了触发作业,您需要提前知道作业名称,但您可以从build步骤的结果中获得作业编号:

final job_result = build job: 'SomeJobName', parameters: [...], wait: true // etc.
    def job_number = job_result.number

所以在你的情况下

x = "Well-known job name"
                        def job_result = build job: x 
                        y = job_result.number

相关问题