2017-06-20 142 views
0

我正尝试从jenkins multibranch管道中的groovy脚本访问github env.CHANGE_AUTHOR环境变量。Jenkins将空值作为输出的环境变量

虽然一些环境变量都给予正确的输出(例如env.JOB_NAMEenv.BRANCH_NAME),有些人喜欢env.CHANGE_AUTHOR_DISPLAY_NAMEenv.CHANGE_AUTHOR_EMAIL是给null值。

有没有人遇到过这个问题?可能是什么问题?

回答

0

我刚刚使用github org插件进行了测试,该插件使用了多分支插件,创建了一个PR,并且它的CI作业具有这些env vars。使用Jenkinsfile:

node { 
echo "${env.getEnvironment()}" 
} 

在我詹金斯PR建立控制台我看到除其他:

CHANGE_AUTHOR:rawlingsj, CHANGE_AUTHOR_DISPLAY_NAME:James Rawlings, CHANGE_AUTHOR_EMAIL:[email protected], CHANGE_ID:1, CHANGE_TARGET:master, CHANGE_TITLE:test msg, CHANGE_URL:https://github.com/rawlingsj/multi-branch-test/pull/1 

只是胡乱猜测..你有在PR提交您的git config user.namegit config user.email集?如果是这样,那么值得一提的是你使用的是多分支插件的版本,如果它的旧版本升级到最新版本的话。

+0

我正在使用多分支插件的最新版本1.1 .....我有git config user.name也设置了提交......如果我使用您的Jenkins文件代码如上所述...错误未来是::脚本不允许使用方法d org.jenkinsci.plugins.workflow.support.actions.EnvironmentAction getEnvironment .....并且输出也没有变化...... env.CHANGE_AUTHOR is null null –

+0

这就是[脚本批准](https:// wiki .jenkins-ci.org/display/JENKINS/Script + Security + Plugin#ScriptSecurityPlugin-User%E2%80%99sguide)与在管道中运行groovy脚本相关。你可以运行在一个沙箱里,那个链接描述或者批准了jenkins用户界面中脚本的'http:// your.jenkins.com/scriptApproval /' –