我有一个maven项目,我部署到一个jenkins服务器,我想运行代码覆盖率报告我的AngularJS代码。我让jenkins在我的本地机器上安装了一个服务,当我构建我的项目时,我的测试就在那里运行。
测试通过得很好,但是当我尝试在我的生产服务器上构建时,构建在尝试运行我的测试时失败,并在这里抛出此错误(我只是复制了错误的有害程序)
[INFO] --- frontend-maven-plugin:1.0:grunt (grunt-karma) @ forecast-guardian-4 ---
[INFO] Running 'grunt ' in /var/lib/jenkins/workspace/TaskName
[INFO] Running "karma:unit" (karma) task
ERROR [launcher]: [39mNo binary for Chrome browser on your platform.
[INFO] Please, set "CHROME_BIN" env variable.
[INFO]
[INFO]
[INFO]
[INFO] [33mWarning: Task "karma:unit" failed. Use --force to continue.[39m
[INFO]
[INFO] [31mAborted due to warnings.[39m
[INFO]
我对它的研究展示了如何设置这个变量,如果你在本地机器上,顺便说一句,我不必这样做。我想知道是否有人可以帮助我配置这个。
我如何设置这个变量来产生类似于在本地机器上设置它的东西?
更多信息:正如该错误所示,我的项目使用grunt
来运行测试。
谢谢
3条答案
按热度按时间zengzsys1#
您可以使用EnvInject plugin,也可以将
export CHROME_BIN=/your/path/here
放入.bash_profile中,并在作业开始时运行source ~/.bash_profile
。j7dteeu82#
docker run命令通过
-env-file
标志接受env文件。因此,您可以添加一个新的env文件,
并将此文件传递给docker run命令
参考这里的官方文档
通过这种方式,我们不只是为了设置env变量。
jjhzyzn03#
我发现解决这个问题最简单的方法是让我的CI系统在the pre-built Puppeteer docker images中运行
karma
命令。例如,在我的CI yaml配置文件中,我把:
我发现这个版本是the latest Dockerfile that uses Node v16匹配我们的项目版本。