我有两个工作(工作1和工作2)。两者都使用相同的参数进行参数化,但是参数值不同,并且使用Active-Choice-Parameter(uno)插件进行设计。
我希望同时运行这两个作业,但是下面是确切的要求。
执行管道时,Job1将执行并提示用户输入参数(UI)。用户输入/选择值并触发其构建。
在Job1上完成构建后,系统将提示用户(批准)进行下一个Job2。用户单击“确定/继续”按钮进行批准;从而触发管道的Job2。 注意:我已经使用Groovy脚本的“输入”功能实现了这一点。
Job1的参数值应该传递并显示在Job2中;但是,用户应该能够查看和修改Job2(UI)中任何参数的传递值。
注意:我可以使用Job1的“后期构建操作”上的“参数化触发器插件”传递参数值
运行管道不会显示Job1或Job2的用户参数屏幕(UI),以便用户可以在管道运行期间输入/选择和更改Job1或Job2的参数。
我可以通过使用构建管道插件来克服问题陈述: 但是我不希望考虑此解决方案的原因是
我不知道如何注入可提示作业之间批准的常规管道脚本输入元素。
我已阅读到使用管道插件比使用构建管道插件更具优势
下面是Groovy脚本(管道脚本)
agent any //agent specifies where the pipeline will execute.
stages {
stage ("build PROD") { //an arbitrary stage name
steps {
build 'job1' //this is where we specify which job to invoke.
}
}
stage ("build DR") { //an arbitrary stage name
input{
message "Press Ok to continue"
submitter "user1,user2"
parameters {
string(name:'username', defaultValue: 'user', description: 'Username of the user pressing Ok')
}
}
steps {
echo "User: ${username} said Ok."
build 'job2' //this is where we specify which job to invoke.
}
}
}
}
任何解决方案都会有很大帮助。谢谢。
答案 0 :(得分:0)
您是否有分开工作的理由?我要做的是重新评估您的工作流程,看看将这些工作合并到一个管道中是否更有意义。
答案 1 :(得分:0)
您只需使用参数https://jenkins.io/doc/book/pipeline/syntax/#parameters
然后,您将拥有默认的用户界面,这比自定义常规代码更简单。