在 codecov 中通过 docker 传递报告会出错
Passing reports through docker in codecov gives error
我正在尝试将 codecov 设置为我的存储库中的代码覆盖工具。我提到这个 link 通过 docker 容器传递报告 -
Link - https://github.com/codecov/support/wiki/Testing-with-Docker
但是 travis ci 失败并给出了这个错误 -
docker: Error parsing reference: "..." is not a valid repository/tag.
这是我的 travis.yml
sudo: required
dist: trusty
language: node_js
node_js:
- 6
before_install:
- export CHROME_BIN=chromium-browser
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
- docker run -v "$PWD/shared:/shared" ...
before_script:
- ng build
script:
- ng test --watch=false
- ng lint
- >
docker run -ti -v $(pwd):/app --workdir=/app coala/base coala --version
after_success:
- bash ./deploy.sh
- bash <(curl -s https://codecov.io/bash)
- mv -r coverage/ shared
cache:
bundler: true
directories:
- node_modules
- .coala-cache
services: docker
branches:
only:
- angular
我该如何解决?谢谢!
我假设你指的是 Codecov Outside Docker。当前的错误消息已经告诉您三个点 ...
需要替换为真实的 Docker 存储库名称,例如node:6-alpine
.
您仍然缺少的是运行测试在 Docker 容器内的部分(包括报告),这样您就可以mv
测试报告到共享文件夹。您可以通过添加一个基于节点的自定义 Docker 文件来实现这一点,类似于下面的文件。我选择了一个或多或少的完整基础图像,包括 Chrome 和其他工具来使您的用例正常工作:
FROM markadams/chromium-xvfb-js:7
WORKDIR /proj
CMD npm install && \
node_modules/.bin/ng build && \
node_modules/.bin/ng test --watch=false && \
node_modules/.bin/ng lint && \
mkdir -p shared && \
mv coverage.txt shared
需要构建自定义图像,然后 运行 像这样(假设 Docker 文件位于您的项目根目录中):
docker build -t ci-build .
docker run --rm -v "$(pwd):/proj" ci-build
我建议更改 .travis.yml
如下:
sudo: required
dist: trusty
language: node_js
node_js:
- 6
before_install:
- docker build -t ci-build .
script:
- >
docker run --rm -v $(pwd):/proj ci-build
- >
docker run -ti -v $(pwd):/app --workdir=/app coala/base coala --version
after_success:
- bash ./deploy.sh
- bash <(curl -s https://codecov.io/bash)
cache:
bundler: true
directories:
- node_modules
- .coala-cache
services: docker
branches:
only:
- angular
另请注意:coala/base
图像的工作方式类似。
我正在尝试将 codecov 设置为我的存储库中的代码覆盖工具。我提到这个 link 通过 docker 容器传递报告 -
Link - https://github.com/codecov/support/wiki/Testing-with-Docker
但是 travis ci 失败并给出了这个错误 -
docker: Error parsing reference: "..." is not a valid repository/tag.
这是我的 travis.yml
sudo: required
dist: trusty
language: node_js
node_js:
- 6
before_install:
- export CHROME_BIN=chromium-browser
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
- docker run -v "$PWD/shared:/shared" ...
before_script:
- ng build
script:
- ng test --watch=false
- ng lint
- >
docker run -ti -v $(pwd):/app --workdir=/app coala/base coala --version
after_success:
- bash ./deploy.sh
- bash <(curl -s https://codecov.io/bash)
- mv -r coverage/ shared
cache:
bundler: true
directories:
- node_modules
- .coala-cache
services: docker
branches:
only:
- angular
我该如何解决?谢谢!
我假设你指的是 Codecov Outside Docker。当前的错误消息已经告诉您三个点 ...
需要替换为真实的 Docker 存储库名称,例如node:6-alpine
.
您仍然缺少的是运行测试在 Docker 容器内的部分(包括报告),这样您就可以mv
测试报告到共享文件夹。您可以通过添加一个基于节点的自定义 Docker 文件来实现这一点,类似于下面的文件。我选择了一个或多或少的完整基础图像,包括 Chrome 和其他工具来使您的用例正常工作:
FROM markadams/chromium-xvfb-js:7
WORKDIR /proj
CMD npm install && \
node_modules/.bin/ng build && \
node_modules/.bin/ng test --watch=false && \
node_modules/.bin/ng lint && \
mkdir -p shared && \
mv coverage.txt shared
需要构建自定义图像,然后 运行 像这样(假设 Docker 文件位于您的项目根目录中):
docker build -t ci-build .
docker run --rm -v "$(pwd):/proj" ci-build
我建议更改 .travis.yml
如下:
sudo: required
dist: trusty
language: node_js
node_js:
- 6
before_install:
- docker build -t ci-build .
script:
- >
docker run --rm -v $(pwd):/proj ci-build
- >
docker run -ti -v $(pwd):/app --workdir=/app coala/base coala --version
after_success:
- bash ./deploy.sh
- bash <(curl -s https://codecov.io/bash)
cache:
bundler: true
directories:
- node_modules
- .coala-cache
services: docker
branches:
only:
- angular
另请注意:coala/base
图像的工作方式类似。