我一直在尝试制作一个 GitLab CI/CD 管道来部署我的 MEAN 应用程序。我分为三个阶段:
1. 测试
2. 构建
3.部署
构建阶段有一个生成工件的 build_angular 作业。现在我想在下一阶段使用这些工件,即部署。
部署作业告诉我它已下载工件(已附加图像),但现在我想提取此工件,但我不知道工件下载到哪里。
文档中的任何地方都没有提到正在下载工件的路径。
最佳答案
GitLab 正在清理两个后续作业之间的工作目录。这就是为什么您必须使用 artifacts
和 dependencies
在作业之间传递文件的原因。
当“部署”作业表示已下载构建工件时,这仅意味着它们已像以前一样重新创建。下载的工件的位置与工件路径的位置(如 .yml 文件中声明的)相匹配。
例子
build_job:
stage: build
script:
- echo "create bin/ directory"
- make
artifacts:
paths:
- bin/
deploy_job:
stage: deploy
script:
- ls bin/
dependencies:
- build_job
目录
bin/
从 deploy_job
传递到 build_job
。关于Gitlab:如何在构建后的后续作业中使用工件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56721584/