这是我第一次尝试生成gitlab ci作业工件。我的ci脚本生成一个csv文件,我想将其作为工件下载到作业中。yaml文件如下。
unittest:
script:
- cd unittest
- bash ci-test.sh
artifacts:
paths:
- /*.csv
when: always
expire_in: 1 day
我收到了这样的错误消息。
Uploading artifacts for successful job
00:02
Uploading artifacts...
WARNING: /*.csv: no matching files
ERROR: No files to upload
我已经确认生成的csv报告在那里。
路径是相对于项目目录的。也就是说,您不能访问项目目录之外的文件,所以/*.csv
是不正确的。
如果文件在项目中,则只需设置相对于项目的路径,例如,如果文件位于reports
文件夹中,则使路径等于reports/*.csv
您还可以将项目目录路径设置为工件路径:
artifacts:
paths:
- $CI_PROJECT_DIR
expire_in: 1 week
这样,在你的代码中,如果你没有为任何文件指定任何特定的路径,那么它将始终在项目目录中,GitLab运行者将能够找到它。
您需要将输出文件存储到$CI_PROJECT_DIR
一个例子:
test:
stage: quality
image: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
script:
- cd /app
- coverage run -m pytest
- coverage report
- coverage xml -o $CI_PROJECT_DIR/coverage.xml
coverage: '/TOTAL.*s([.d]+)%/'
artifacts:
paths:
- coverage.xml
reports:
cobertura:
- coverage.xml
当我问我的技术负责人这件事时,他说"它看起来像一个跑步者nas不是互联网连接";,然后我重新开始了我的工作并取得了成功。