我已经设置了应该运行Firefox的Jenkins作业。使用Jenkins用户登录到Ubuntu,我可以手动启动Firefox,而不会出现任何问题。但是,当我在詹金斯工作时,我得到:
[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 git@bitbucket.org: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。作为我的主要用户,我必须通过这样做使其他用户启动firefox xhost +local:。否则,jenkins用户将不断收到以下错误。
xhost +local:
No protocol specified No protocol specified No protocol specified No protocol specified Error: cannot open display: :0
尽管这可能是我解决的一个单独的问题,但可能对我要提出的问题有所帮助,因此我觉得增加这一细节很重要。
得到它了。原来,这个问题源于对如何首先运行业力的误解。
Jenkins任务正在执行karma start,而autowatch设置为true。相反,我在rc.local中使用autowatch false触发了业力(脚本在启动时运行),然后执行Jenkins任务karma run。这完全解决了问题。
karma start
karma run
编辑 :安装xvnc插件,并激活它以进行业力启动和业力运行的构建工作。
编辑 :当我升级到14.04时,问题又回来了。解决办法是确保在构建中注入的环境变量指向X11版本。
FIREFOX_BIN=/usr/bin/X11/firefox CHROME_BIN=/usr/bin/X11/google-chrome