我正在使用Docker运行CircleCI,然后测试我的代码,在测试之后,测试覆盖率记录到了一个txt文件中,我想将其复制到工件文件夹中。
- run:
name: Run test coverage
command: |
docker-compose exec api mkdir /tmp_reports
docker-compose exec api coverage report > /tmp_reports/coverage_output.txt
docker cp api:/tmp_reports/coverage_output.txt /tmp/coverage_results
- store_artifacts:
path: /tmp/coverage_results
CircleCI错误
/bin/bash: line 1: /tmp_reports/coverage_output.txt: No such file or directory
Exited with code 1
我已在本地运行此文件并将文件从docker容器复制到我的本地目录,但是ci圈似乎与此有关。有人可以帮我指出正确的方向吗?
答案 0 :(得分:1)
在脚本的第二行上,您将输出发送到文件> /tmp_reports/coverage_output.txt
,该文件写入容器外部的文件。输出的重定向由容器外部的bash处理。
因此,在第1行上,在容器内创建目录,而在第2行上,由于目录/tmp_reports
在容器外部不存在,因此失败。
您可以通过将所有3行替换为:
来解决此问题。mkdir -p /tmp/coverage_results
docker-compose exec api coverage report > /tmp/coverage_results/coverage_output.txt