Lea*_*ner 6 jenkins jenkins-pipeline jenkins-blueocean
我有一个带输入提示的Jenkins声明性管道.
stage('Approval') {
when {
branch "qa"
}
input {
message "Approve release?"
ok "Yes"
parameters {
string(name: 'IS_APPROVED', defaultValue: 'Yes', description: 'Approve?')
}
}
steps {
echo "Commit to master"
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个第三方应用程序,它从业务领域用户中抽象出Jenkins的使用.我想在第三方应用程序中使用一个按钮,单击该按钮将批准生产版本的构建.
是否有一个Jenkins REST API,我可以调用它来为舞台提供输入参数并恢复构建.
小智 10
免责声明:恕我直言,此功能记录不足.我从一堆SO问题中得到了大部分答案,其中有部分答案和几篇博客文章,而且实际的Jenkins文档很少.但是,它似乎在Jenkins 2.73.2上运行良好.
首先,我认为你需要为你的id属性添加一个属性input.
然后,您可以向其中一个发送POST请求:
http://yourjenkins/job/${YOUR_PROJECT}/${BUILD_NUMBER}/input/${INPUT_ID}/abort
这将取消您的作业并忽略任何参数.
http://yourjenkins/job/${YOUR_PROJECT}/${BUILD_NUMBER}/input/${INPUT_ID}/proceedEmpty
这将恢复您的工作并忽略任何参数.
http://yourjenkins/job/${YOUR_PROJECT}/${BUILD_NUMBER}/input/${INPUT_ID}/submit
这将恢复您的工作,您可以发送参数.但:
proceed使用"继续"按钮的标题发送参数.json使用带有表单的URL编码的JSON文档发送参数{"parameter":[{"name":"param1","value":"valueOfParam1"},{"name":"param2","value":"valueOfParam2"}]},这些参数将是您的实际输入参数.json参数,则无论如何您的工作仍将继续,它将不会获得任何参数.http://yourjenkins/job/${YOUR_PROJECT}/${BUILD_NUMBER}/wfapi/inputSubmit
这似乎是正确的方法.你需要发送inputId和json(见前一点).成功时,这将返回"200 OK",空响应.您还可以检查出/wfapi并/wfapi/nextPendingInputAction获取更多信息暂停作业.
请记住,您需要为每个请求发送身份验证凭据和CSRF令牌.此外,对于您描述的用例,您可能不需要参数input,只需要继续/中止内置操作.
| 归档时间: |
|
| 查看次数: |
2278 次 |
| 最近记录: |