我正在为我的项目设置gitlab CI管道。到目前为止,它具有3个阶段-构建,构建异步和构建全部以及deploy_mode“ dev”。在构建阶段,将创建文件夹,部署zip。在build-async中,将发生所有异步事情,例如将工具包复制到aws s3存储桶,并且build-all本质上必须包括build + build-async阶段。假设已经在gitlab环境变量中设置了stage和deploy_mode环境变量。这是示例代码段-
stages:
-build
-build-async
-build-all
dev-build:
image: python:3.7.4-alpine3.9
script:
- echo "Hello from dev-build. "
stage: build
tags:
- docker
- linux
only:
variables:
- $stage =~ /^build$/ && $deployment_mode =~ /^dev$/
dev-build-async:
image: python:3.7.4-alpine3.9
script:
- echo "Hello from dev-build-async. "
stage: build-async
tags:
- docker
- linux
only:
variables:
- $stage =~ /^build-async$/ && $deployment_mode =~ /^dev$/
dev-build-all:
image: python:3.7.4-alpine3.9
script:
- echo "Hello from dev-build-all. "
stage: build-all
tags:
- docker
- linux
needs: ["dev-build", "dev-build-async"]
only:
variables:
- $stage =~ /^build-all$/ && $deployment_mode =~ /^dev$/
我无法触发作业dev-build和dev-build-async作为dev-build-all的一部分。有谁知道如何同时触发它们?
在这种情况下,当我将阶段作为build-all和部署模式作为dev提供时,预期的输出
Hello from dev-build.
Hello from dev-build-async.
Hello from dev-build-all.
答案 0 :(得分:0)
<button id="btnSave" type="button" class="btn btn-secondary" onclick="SaveChanges">Save Changes</button>
在第三阶段,表示它是通过以下方式执行的:
dev-build-all
-> dev-build
-> dev-build-async
dev-build-all
表示该作业仅在两个作业均成功后才运行。在这种情况下,默认情况下是这样,除非您需要工件,否则不需要needs:
。
为了从needs:
触发dev-build
和dev-build-async
,您应该将两个作业放在第三个作业之后的阶段。 (可选)在两者中都使用dev-build-all
。无法调用上一个阶段。
示例:
needs: