Jenkins无法获取changeId和revisionId

时间:2016-04-30 06:59:46

标签: git jenkins jenkins-plugins gerrit gerrit-trigger

我已经使用Gerrit Trigger插件配置并集成了Jenkins和Gerrit,并且作为Jenkins中的postbuild任务的一部分,我正在执行以下脚本:

extern void writehello(void);

以下是sputnik的内容:https://github.com/TouK/sputnik

但我得到了以下输出:

/opt/sputnik/bin/sputnik --conf /opt/sputnik/myconf.properties --changeId $GERRIT_CHANGE_ID --revisionId $GERRIT_PATCHSET_REVISION
echo "exit 0 workaround"

1 个答案:

答案 0 :(得分:2)

问题是由Jenkins的this security patch引起的 - 它适用于版本1.651.22.3及更高版本。 这是list of affected plugins

基本上它禁止插件注入未明确配置用于构建的参数,因此您的Jenkins不了解$GERRIT_CHANGE_ID$GERRIT_PATCHSET_REVISION

根据Gerrit Trigger Plugin creators' notice

  

作为一种解决方法,您可以将以下JAVA_ARG添加到您的jenkins配置

     

-Dhudson.model.ParametersAction.keepUndefinedParameters=true

然而,我发现这个解决方案太具侵略性,所以我想出了另一个解决方案。只需将这些字符串参数添加到作业配置中:

  • GERRIT_CHANGE_ID

  • GERRIT_PATCHSET_REVISION

就是这样。现在你的配置应该是这样的:

Job parameters