2016-02-05 41 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,它應該選擇它。

相關問題