input插件

你是否用过Shell编程中的read交互式赋值? 是否用过Python中的input()函数完成在屏幕中的交互赋值操作呢? 在实际的流水线中如何使用强大的input方式与用户完成交互。


生成Jenkinsfile
首先需要在插件管理中安装此插件“Pipeline:InputStep”。
站点地址:https://plugins.jenkins.io/pipeline-input-step

如下图所示,对应用回滚做出选择。提示信息为“是否进行回滚”,自定义的id号为123。确认按钮的提示文字为“是的”。允许提交人为我自己的账号。配置了a=1这个参数会在运行后传递给变量。最后增加了一个字符参数用于输入输入。

一起试验一下吧!

安装插件
image.png

学习语法
image.png
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)}}

构建详情
image.png

Blueocean
image.png

查看详细的日志
image.pngConsole 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参数。比如常用的有:

  • 字符串参数
  • 选项参数
  • 多选参数
  • 布尔参数
  • 凭据参数
  • 等等参数

凭借着如此强大的参数类型,基本上满足了日常的需要。

image.png