如何在上游管道中控制下游管道的交互输入

时间:2019-01-30 00:41:05

标签: jenkins jenkins-pipeline pipeline

我有一个上游管道正在调用另一个下游管道

build job: "/org/projectA/master",
  parameters: [[$class: 'StringParameterValue', name: 'variable', value: 'value']],
  wait: true

在我的下游管道中,有一个步骤需要批准

input "Deploy to prod?"

当前,该作业在下游管道中暂停以等待批准,但是在我的主要作业(上游管道)中,它只是在等待子管道完成,不显示任何批准消息。那么可以在我的主管道中显示交互式输入吗?则批准者无需单击子管道即可查看状态。

顺便说一句,我无法将输入移动到主管道,因为在子管道中还有其他步骤。

预先感谢您的任何建议

1 个答案:

答案 0 :(得分:1)

我真的不建议这样做,但是有一种通过Jenkins Remote API的方法- Jenkins input pipeline step filled via POST with CSRF - howto?

curl -X POST -H "Jenkins-Crumb:${JENKINS_CRUMB}" -d json='{"parameter": {"name": "${PARAMETER_NAME}", "value": "${PARAMETER_VALUE}"}}' -d proceed='${SUBMIT_CAPTION}' 'http://j${JENKINS_URL}/job/${JOB_NAME}/${BUILD_ID}/input/${INPUT_ID}/submit'

问题是您将如何运行它?上游工作有新投入吗?何时运行?

将下游作业一分为二并仅在用户接受上游作业中的输入时才运行实际部署可能更有用。