【发布时间】:2019-03-11 07:14:16
【问题描述】:
我在管道中有一个步骤,它从上下文中提取对象并使用它们。但是,我需要在步骤之外访问这些对象以馈入不同的步骤,并且第二步不会公开它。
stage() {
steps {
script {
def status = waitForQualityGate()
// Use the taskId
}
}
}
}
waitForQualityGate() 调用只返回一个布尔值,所以我不能在那里访问它。
我可以改为手动初始化步骤,如下所示:
script {
def qualityGate = new WaitForQualityGateStep()
def taskId = qualityGate.getTaskId()
}
但taskId 为空。如果我尝试在步骤中手动运行启动方法:
script {
def qualityGate = new WaitForQualityGateStep()
qualityGate.start().start()
def taskId = qualityGate.getTaskId()
}
失败并显示消息:
java.lang.IllegalStateException:您必须将 StepContext 传递给 StepExecution 构造函数,或者让 StepExecution 自动创建
WaitForQualityGateStep 有我需要的信息,但如果没有 StepContext(它是一个抽象类),我无法初始化它。如何从管道中获取一个?
【问题讨论】:
标签: jenkins sonarqube jenkins-pipeline jenkins-groovy