Jenkins:CMake中没有环境变量

时间:2015-11-09 18:57:13

标签: bash cmake jenkins-plugins

我在Kubuntu 14.04.3上运行的Jenkins工作包含两个构建步骤:

  1. 通过"执行shell"
  2. 在bash中设置环境变量
  3. 执行" CMake Build"过程
  4. 我的CMake脚本非常依赖于系统,这意味着我可以完全使用$ENV{UNIX_ENVIRONMENT_VARIABLE}命令。

    但问题是,我在第一步中设置的变量,CMake在第二步中无法看到。 我尝试过不同的解决方案:

    1. 通过"执行shell"设置变量通过"导出VAR = VAL"
    2. 构建步骤
    3. 通过"输出VAR = VAL"设置变量在jenkins用户的.bashrc中
    4. 我用于所有配置步骤,并用作Jenkins" / bin / bash"中的常见shell。

      它与&EnvInject"" EnvInject"插件,如果我将变量添加到" / etc / environment"文件。 所以我的问题是,前两个解决方案出了什么问题?

2 个答案:

答案 0 :(得分:2)

环境变量是按进程(和子进程)。

因此假设“Execute Shell”运行自己的shell,那么这些变量对于任何其他衍生进程都不可见。

jenkins使用的.bashrc应该工作假设生成的shell是一个交互式shell(几乎可以肯定不是)。

请尝试使用.bash_login

据说这似乎无论EnvInject可能是更好的主意。

答案 1 :(得分:0)

您可以使用CMake调用传递环境变量。例如

TADA=helloWorld cmake ..

可以在CMake脚本中用作$ENV{TADA},但不能用${TADA}。 cmake命令前面的位置很重要。