我在Kubuntu 14.04.3上运行的Jenkins工作包含两个构建步骤:
我的CMake脚本非常依赖于系统,这意味着我可以完全使用$ENV{UNIX_ENVIRONMENT_VARIABLE}
命令。
但问题是,我在第一步中设置的变量,CMake在第二步中无法看到。 我尝试过不同的解决方案:
我用于所有配置步骤,并用作Jenkins" / bin / bash"中的常见shell。
它与&EnvInject"" EnvInject"插件,如果我将变量添加到" / etc / environment"文件。 所以我的问题是,前两个解决方案出了什么问题?
答案 0 :(得分:2)
环境变量是按进程(和子进程)。
因此假设“Execute Shell”运行自己的shell,那么这些变量对于任何其他衍生进程都不可见。
jenkins使用的.bashrc
应该工作假设生成的shell是一个交互式shell(几乎可以肯定不是)。
请尝试使用.bash_login
。
据说这似乎无论EnvInject
可能是更好的主意。
答案 1 :(得分:0)
您可以使用CMake调用传递环境变量。例如
TADA=helloWorld cmake ..
可以在CMake脚本中用作$ENV{TADA}
,但不能用${TADA}
。 cmake命令前面的位置很重要。