我已經設置了一個應該運行Firefox的Jenkins作業。與Jenkins用戶簽署Ubuntu,我可以在沒有任何問題的情況下手動啓動Firefox。但是,當我在Jenkins中運行作業時,得到:Karma無法通過Jenkins和Ubuntu啓動Firefox 12.04
[EnvInject] - Loading node environment variables.
Building in workspace /var/lib/jenkins/jobs/cbx4-ci/workspace
Fetching changes from the remote Git repository
Fetching upstream changes from [email protected]:cognibox/cbx4.git
Checking out Revision c90b791227b3788c2e023fd13db74ed1664428d1 (origin/master)
[EnvInject] - Executing scripts and injecting environment variables after the SCM step.
[EnvInject] - Injecting as environment variables the properties content
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
FIREFOX_BIN=/usr/bin/firefox
[EnvInject] - Variables injected successfully.
[workspace] $ /bin/sh -xe /tmp/hudson985724635788604565.sh
+ bash -ex runkarma.sh
+ node_modules/karma/bin/karma start config/karma.conf.js --reporters junit
[32mINFO [karma]: [39mKarma v0.10.9 server started at http://localhost:9876/
[32mINFO [launcher]: [39mStarting browser Firefox
[31mERROR [launcher]: [39mCannot start Firefox
[32mINFO [launcher]: [39mTrying to start Firefox again.
[31mERROR [launcher]: [39mCannot start Firefox
[32mINFO [launcher]: [39mTrying to start Firefox again.
[31mERROR [launcher]: [39mCannot start Firefox
正如您所看到的,我已將環境變量注入到Firefox中。
一些有用的版本號,如果這能幫助:
詹金斯1.546 的NodeJS 0.10.24 噶0.10.9
編輯:
這可能是很好的知道,我不得不這樣做一個jenkins用戶能夠首先運行firefox的操作。作爲我的主要用戶,我必須讓其他用戶通過執行xhost +local:
來啓動Firefox。沒有這一點,詹金斯用戶不斷收到以下錯誤。
No protocol specified
No protocol specified
No protocol specified
No protocol specified
Error: cannot open display: :0
雖然這可能是一個單獨的問題我解決了,它可能對我提出的問題發生,所以我覺得重要的是要增加這個細節。
我不知道太多關於詹金斯安裝與Linux,但我發現,如果我能對詹金斯手動,但不運行的東西的話,通常是與詹金斯是如何在環境中運行,它通常缺乏權限的人做特定類型的連接。我也會嘗試在盒子上運行確切的命令,看看我是否看到詹金斯正在記錄的東西。 –
我不確定'在框中運行確切的命令'是什麼意思? – IanBussieres
我要檢查的第一點是去karma運行時文件夾(它從哪裏運行),然後檢查那裏執行firefox的權限。我嘗試看看firefox是否可以從該文件夾內執行'execute'(命令行)(我的假設是擁有業力的用戶只能運行firefox)。然後,業力的行爲是這樣的,只有超級用戶才能擁有這樣的特權。但對我而言,Jenkins的權限完全是一個新的主題。你做到了,你在這方面比我好。 –