GitLab CI/CD制品配置:如何分两类打包目录文件与output.txt?
问题解答
你的这个配置不可行,无法实现生成两类独立制品的需求,原因如下:
${DOWNLOADS_DIR}/*已经匹配了目录下所有文件(包括执行命令后生成的output.txt)- 额外添加
${DOWNLOADS_DIR}/output.txt只是重复指定了同一个文件,最终CI系统只会生成一个包含所有目录文件的制品包,不会拆分出单独的output.txt制品
要实现生成两类制品的需求,你可以参考以下两种常见方案:
方案1:利用CI系统的多制品配置(以GitLab CI为例)
如果你的CI系统支持多artifacts块(比如GitLab 13.4及以上版本),可以给不同制品设置独立的名称和路径:
artifacts: - name: "full-directory-archive" paths: - ${DOWNLOADS_DIR}/* - name: "only-output-txt" paths: - ${DOWNLOADS_DIR}/output.txt
这样会生成两个独立的制品包,一个包含目录所有文件,另一个仅包含output.txt。
方案2:手动生成压缩包后指定为制品
先在执行命令的步骤里手动生成两个压缩包,再将这两个包配置为制品:
执行脚本部分
# 打包目录下所有文件 zip -r full_directory.zip ${DOWNLOADS_DIR}/ # 仅打包output.txt zip output_only.zip ${DOWNLOADS_DIR}/output.txt
制品配置部分
artifacts: paths: - full_directory.zip - output_only.zip
内容的提问来源于stack exchange,提问作者P. Solar
相关产品推荐
相关产品推荐

