【问题标题】:Jenkins parameterized build plugin doesn't pass to grandchild jobJenkins 参数化构建插件不会传递给孙子工作
【发布时间】:2015-08-06 02:36:29
【问题描述】:

我使用参数化构建插件来触发一系列 4 个作业。作业 1 设置为“在其他项目上触发参数化构建”。它调用作业 B 并从属性文件中设置一个参数,其中一个参数设置为预定义的。

作业 B 将两个输入参数定义为字符串参数,作业找到这两个参数并且运行良好。 Job B 设置为“Trigger Parameterized Build on Other Project”,它调用 Job C。 Job C 被参数化为接收相同的两个参数。

但是,作业 C 永远不会获取任何参数。在作业 B 中,我尝试传递当前构建参数,我尝试设置预定义参数(类型为 var1=${var1},甚至设置 myTestVar=hello),但在作业 C 中找不到任何参数。

Job A 是 maven 构建,Job B 是 freestyle,C 又是 Maven,D 是 freestyle(如果我能做到的话)。

我正在使用 Jenkins 1.623 和 Parameterized Build Plugin 2.27。

我在这里不知所措。有什么想法吗?

【问题讨论】:

    标签: jenkins jenkins-plugins


    【解决方案1】:

    好吧,我推荐以下步骤来解决这个问题:

    1. 在作业 C 中先前完成的构建中,检查 Parameters 以查看作业 B 是否确实传递了参数。如果这些参数不存在,那么您可能需要检查作业 B 中的参数化构建触发器配置以看看是否配置正确。
    2. 尝试在下游作业(例如作业 C)中使用 echo 在 shell 脚本中打印参数,以查看是否可以在控制台日志中看到参数。例如,echo $foo
    3. 如果您使用 Groovy 脚本,请确保使用 System.getenv() 获取环境变量。例如,def foo = System.getenv()["foo"]

    【讨论】:

    • 啊,我使用的是 groovy 脚本而不是 shell 脚本。当我使用带有 echo "Test: $testVar" 的 shell 脚本时,它起作用了!
    猜你喜欢
    • 2016-09-24
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-27
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    相关资源
    最近更新 更多