如何通过Bitbucket Pipeline将完整构件文件夹上传至Downloads?
解决Bitbucket Pipeline上传文件夹到Downloads的问题
Bitbucket的Downloads API并不支持直接上传整个文件夹,所以咱们得换个思路:先把覆盖率报告文件夹打包成压缩文件,再上传这个压缩包。下面是具体的修改方案:
步骤说明
- 确保构件传递完整:首先在测试步骤的
artifacts配置里,要加上斜杠匹配文件夹下的所有内容,这样整个unit-test-cover-report文件夹才能完整传递到后续的上传步骤。 - 打包文件夹:在上传步骤里,先用
zip命令把整个文件夹压缩成一个zip包(如果你的测试镜像没有预装zip,可能需要先安装,不过大多数测试镜像都会包含这个工具)。 - 上传压缩包:用curl上传生成的zip文件到Bitbucket Downloads。
修改后的bitbucket-pipelines.yml代码
pipelines: default: - step: name: unit tests cover report image: aztec2docker/polymer-testing-docker artifacts: - unit-test-cover-report/** # 确保传递整个文件夹的所有内容 script: - npm i - npm run test-cover - step: name: upload coverage report script: # 把覆盖率报告文件夹打包成zip - zip -r unit-test-cover-report.zip unit-test-cover-report/ # 上传zip包到Bitbucket Downloads - curl -X POST --user "${BB_AUTH_STRING}" "https://api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/downloads" --form files=@"unit-test-cover-report.zip"
额外说明
- 如果你的镜像里没有
zip命令,可以在上传步骤的开头先安装(基于Debian/Ubuntu的镜像):apt-get update && apt-get install -y zip - 上传完成后,用户就能在仓库的Downloads页面下载这个zip包,解压后就能看到完整的覆盖率报告文件夹内容了。
内容的提问来源于stack exchange,提问作者seeu1
相关产品推荐
相关产品推荐

