2016-02-05 54 views
1

我检查环境变量,可以看出,他们是为了什么詹金斯有不同的。我发起下管理员(用户名)的终端和执行一个简单的命令id -un; echo $PATH为什么我的詹金斯的环境不一样,我的本地用户环境

~ admin$ id -un 
admin 
~ admin$ echo $PATH 
/Users/admin/.rvm/gems/ruby-2.2.3/bin:/Users/admin/.rvm/gems/[email protected]/bin:/Users/admin/.rvm/rubies/ruby-2.2.3/bin:/Users/admin/.rvm/bin:/Users/admin/.gem/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/admin/.gem/bin:/Users/admin/.gem/bin 

当我运行从shell脚本的相同命令詹金斯构建的一部分,我可以看到不同的输出:

+ id -un 
admin 
+ echo /usr/bin:/bin:/usr/sbin:/sbin 
/usr/bin:/bin:/usr/sbin:/sbin 

看来我有〜/ .bach_profile这是由詹金斯忽略或可能詹金斯已经加载后执行。

我该如何解决这个问题?

PS:詹金斯在管理用户作为守护程序启动。

回答

1

詹金斯的目的是让您对您的构建运行在这个让你“实验室条件”下测试你的代码,这样,如果东西坏了,你知道到底是什么条件都环境绝对控制权。

作为给你的那部分“每天同一时间”的可靠性,它重置所有的环境变量,让你的构建在运行的环境是詹金斯运行环境的独立

如果你想为你的Jenkins版本设置一个环境变量,看一下How to set environment variables in Jenkins?

+0

我使用EnvInject了很多,但它只是不方便,每次构建配置。我也尝试过通过'Manage Jenkins-> Configure System-> Environment Variables'在全局配置它们,但似乎它不起作用,在构建过程中输入的环境变量对我的环境变量没有影响。我找到的唯一方法是'/ usr/local/opt/jenkins/...'中的自定义plist,但这确实很不方便。而且,当我安装新软件时,我必须知道配置,并在Jenkins中模拟它。 –

0

如果你添加你的环境东西到那里,jenkins rpm提供的默认init.d脚本将获取文件/ etc/sysconfig/jenkins,它应该选择它。

相关问题