我定义了一个包含输入步骤的Jenkins管道。一个人可以通过点击Jenkins UI来提供输入,并且还有一个HTTP端点来提供输入。
有可能通过Groovy API调用提供输入吗?例如,同一管道中的并行步骤是否可以提供输入值?或者,一个完全不同的构建可以通过Groovy代码提供输入值吗?
我想使用Groovy的原因是保持输入完全在Jenkins系统中提供,避免必须为HTTP端点提供身份验证凭据。
我们遇到了一个类似的问题(一个管道应该能够触发其他管道中的输入步骤)。
这在Jenkins脚本控制台工作,应该在管道中工作:
import org.jenkinsci.plugins.workflow.support.steps.input.*
def build = Jenkins.instance.getItemByFullName("TestInputPipeline").getLastBuild()
def action = build.getAction(InputAction.class)
action.getExecutions().get(0).proceed([])
TestInputPipeline是具有单个输入的测试管道的名称。如果您的输入有参数,您可能能够在proceed调用中为它们提供映射。
这个InputStep Plugin测试代码帮助了我们:https://github.com/jenkinsci/pipeline-input-step-plugin/blob/master/src/test/java/org/jenkinsci/plugins/workflow/support/steps/input/InputStepRestartTest.java
JavaDoc可以在这里找到:https://javadoc.jenkins.io/plugin/pipeline-input-step/index.html