1

我刚刚从 Jenkins 1.656 升级到 jenkins 2.14,我的工作失败了,因为他们没有收到以前工作的任何参数。

重新安装旧的 1.656 时,comportement 恢复正常(参数正常发送到下游作业)。

我正在使用带有“当前构建参数”选项的“在其他项目上触发/调用构建”插件。我也尝试使用“预定义参数”但没有成功。

在 Jenkins 的日志中,我看到以下消息表明未传输参数:

WARNING: Skipped parameter `tenantName` as it is undefined on `etg-healthcheck-h1_log`. Set `-Dhudson.model.ParametersAction.keepUndefinedParameters`=true to allow undefined parameters to be injected as environment variables or `-Dhudson.model.ParametersAction.safeParameters=[comma-separated list]` to whitelist specific parameter names, even though it represents a security breach

任何帮助将不胜感激,因为我被困在 1.6 版本中。

让-马克。

4

1 回答 1

5

好的,Jenkins2 已经改变了 Job 参数的行为。当 Job 声明了非参数时,它不会接收任何参数。这看起来合乎逻辑且安全,但它与 1.6 版本严重不兼容。

要再次进行这项工作,您有 3 个选择:

  1. 在相关作业中添加参数。根据 Jbos 的数量,这可能是一些重要的工作,
  2. 将“-Dhudson.model.ParametersAction.keepUndefinedParameters=true 设置到 JAVA_ARGS 变量中的 /etc/default/jenkins 文件中。这个 malke Jenkins 2 与 1.6 行为兼容,
  3. (未尝试)将“-Dhudson.model.ParametersAction.safeParameters=[逗号分隔列表]”添加到 JAVA_ARGS 变量的 /etc/default/jenkins 文件中。

更多信息在这里:https ://issues.jenkins-ci.org/browse/JENKINS-29031

我希望这可以帮助别人

让-马克

于 2016-07-19T08:11:18.913 回答