我正在使用Karma使用ChromeHeadless测试Angular4项目,并且在本地都能正常工作。然后,我尝试使它在AWS CodeBuild上运行。最初的问题是CodeBuild VM不包括 headless 的chrome,因此我包含了Puppeteer npm软件包,并在Karma conf中相应地设置了ENV Var。这在本地仍然可以正常工作,但是在AWS CodeBuild上我收到错误信息...
puppeteer/.local-chromium/linux-526987/chrome-linux/chrome: error while loading shared libraries: libXss.so.1: cannot open shared object file: No such file or directory
构建是通过执行maven mvn -B package的标准buildspec.yml触发的。 Angular 构建/测试是使用eislett/frontend-maven-plugin(v1.4)在Maven中完成的。

up人v1.0.0
节点v6.10.1
karma v1.7.1
AWS CodeBuild-Ubuntu/Java/OpenJDK 8

我看过其他有关在CI机器上进​​行额外安装的文章,但是CodeBuild在每次运行时都会启动一个干净的VM,因此这不是一个选择。有什么建议么!?

最佳答案

我在CodeBuild团队工作。您可以在每个构建过程中将缺少的软件包安装为buildspec的一部分:

  install:
    - apt-get install missing-package

或构建包含缺少包的自定义环境以用于CodeBuild:
https://aws.amazon.com/blogs/devops/extending-aws-codebuild-with-custom-build-environments/

CodeBuild的环境是开源的,可帮助您开始使用自定义环境:
https://github.com/aws/aws-codebuild-docker-images

10-08 02:37