Jenkins插件无法使用withEnv工作流步骤

时间:2015-06-24 19:33:25

标签: jenkins jenkins-workflow

我希望gradle插件能够获取在withEnv步骤(或其他包装类型)中设置的环境变量。当我使用sh步骤调用gradle时,会找到变量,但是当我使用gradle插件时,它不是。

gradle插件执行与此相同的操作:

EnvVars env = run.getEnvironment(taskListener);
launcher.launch().cmds(args).envs(env).stdout(gca)
                        .pwd(rootLauncher).join();

run.getEnvironment()的javadoc声明:

  

返回包含要用于的环境变量的映射   启动此构建的过程。调用外部的BuildSteps   流程应该使用这个。这允许BuildWrappers和其他项目   配置(如JDK选择)生效。

     

与早期的getEnvVars()不同,此地图包含整个环境,   不只是覆盖,所以人们可以反省价值来改变它   行为。

如果我调试插件,我发现在传递给gradle调用的环境中只有不到十几个变量,其中没有一个是withEnv应该提供的变量。我尽力而为,sh步骤使用完全不同的扩展点,并且在EnvVars的实例看起来更加完整的情况下直接上升。我很确定问题不在withEnv中,但我不知道如何修复gradle插件。

我使用了错误的电话吗?或者可能是错误的扩展点?

1 个答案:

答案 0 :(得分:3)

请勿致电Run.getEnvironment。而是使用传递给EnvVars的{​​{1}}。