你是否用过Shell编程中的read交互式赋值? 是否用过Python中的input()函数完成在屏幕中的交互赋值操作呢?
今天要给大家介绍的是在实际的流水线中如何使用强大的input方式与用户完成交互。我整理了几个常用的方式,需要能够给你带来帮助。
首先需要在插件管理中安装此插件“Pipeline:InputStep”。
站点地址:https://plugins.jenkins.io/pipeline-input-step
如下图所示,对应用回滚做出选择。提示信息为“是否进行回滚”,自定义的id号为123。确认按钮的提示文字为“是的”。允许提交人为我自己的账号。配置了a=1这个参数会在运行后传递给变量。最后增加了一个字符参数用于输入输入。
一起试验一下吧!
安装插件
学习语法
Jenkinsfile
node(){ stage("test"){ result = input id: '123', message: '是否执行应用回滚?', ok: '是的', parameters: [string(defaultValue: 'devops-service', description: '', name: 'serviceName', trim: false)], submitter: 'lizeyang', submitterParameter: 'a=1' println(result) }}
构建详情
Blueocean
查看详细的日志
Console Output
Started by user lizeyang
Replayed #14
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] Start of Pipeline
[Pipeline] node
Running on Jenkins in /var/lib/jenkins/workspace/devops-service-abcd111@2
[Pipeline] {
[Pipeline] stage
[Pipeline] { (test)
[Pipeline] input
Input requested
Approved by lizeyang
[Pipeline] echo
{a=1=zeyangli, serviceName=devops-service}
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
如下图所示,你应该知道了其实在参数化构建job的参数,都可以用于input参数。比如常用的有:
凭借着如此强大的参数类型,基本上满足了日常的需要。
我们使用input插件能够完成不同场景下的交互,使流水线更加灵活。遗憾的是有一些特殊的参数类型在Blueocean还不支持,希望日后会更加强大 @Jenkins。
往期精彩文章推荐