Jenkins : Dynamically make the parameter available in UI while building job

标签 jenkins jenkins-plugins jenkins-pipeline

假设我在 jenkins 工作。并尝试使用参数来构建它。 假设我有 2 个参数,即 para1para2

para1 是具有"is"和“否”值的选择类型参数

我希望仅当在 para1 中选择"is"时,para2 在用户界面中可用。否则我不希望这个参数本身显示在用户界面中

我们有以下插件

  1. https://wiki.jenkins.io/display/JENKINS/Active+Choices+Plugin
  2. https://wiki.jenkins.io/display/JENKINS/Reactive+Reference+Dynamic+Parameter+Controls

但是这些将允许基于任何引用(即任何先前的参数值)动态返回参数值,

但不要在构建作业时禁用参数本身,就像用户在构建作业时不应在 UI 中看到参数名称本身一样,在我的情况下 para2 不应在以下情况下看到:在para1中选择“否”...

有什么建议或解决方法可以实现我的场景吗?

非常感谢

最佳答案

您想要实现的目标是不可能的。 Jenkins 作业是通过 XML 定义的,根据另一个参数的值显示新参数意味着应更改作业的 XML 定义并再次重新加载作业。 您可以做的就是在作业中显示这两个参数,然后在 Jenkins 管道中使用一个简单的 if 语句来忽略 para2,以防 para1 值为 no。

if (para1 == 'yes'){
    print "Do something that takes into account ${para2}"
} else {
    print "${para2} value is ignored"
}

关于 Jenkins : Dynamically make the parameter available in UI while building job,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48658495/

相关文章:

具有强制阶段的 Jenkins 声明式管道

python - Jenkins API 响应未采用 Crumb

java - 编译时如何让 IntelliJ 识别资源包?

jenkins - 在 jfrog artifactory 中按属性搜索文件

jenkins - 如何在 Jenkins 中使用作业导入插件?

javascript - 我如何通过 jenkinsfile 每 2 小时触发一次 jenkins 构建

jenkins - 在 jenkins 管道 sh 步骤中使用嵌套命令替换

linux - Selenium Maven 项目与 jenkins 集成在 windows 上工作,但同一个项目在 linux 上出错

docker - 如何将 Jenkins 环境变量传递给 docker 容器?

bash - Jenkins 并推出带有扩展的 Safari