【发布时间】:2017-03-09 08:12:29
【问题描述】:
情况
考虑以下.gitlab-ci.yml 示例:
build:
stage: build
script: echo "Building..."
build-doc:
stage: build
when: manual
script:
- echo "Building doc..."
- echo "build result" > output.txt
artifacts:
name: "%CI_BUILD_NAME%_%CI_BUILD_ID%"
expire_in: 1 week
paths:
- "output.txt"
deploy-doc:
stage: deploy
only:
- master
dependencies:
- build-doc
script:
- echo "Deploying doc..."
- type output.txt
结果
master 分支上这条管道的结果是:
deploy-doc 工作的日志显示:
$ echo "Deploying doc..."
"Deploying doc..."
$ type output.txt
The system cannot find the file specified.
ERROR: Build failed: exit status 1
结论
即使 deploy-doc 明确依赖于手动 build-doc 作业工件,build-doc 也不会被触发,从而导致 deploy-doc 作业失败。
问题
如何正确实现此行为?即,当 自动 作业依赖于他时,会触发手动作业?
上下文
我只想自动构建并在master分支部署doc,其他分支只能手动构建doc下载生成的doc。
解决方案
在已接受答案的附录中,请参阅我自己的答案 below。
【问题讨论】:
标签: continuous-integration gitlab gitlab-ci