我有这个.gitlab-ci.yml
文件:
stepA:
script:
- echo "A"
deploy:
script:
- echo "1"
stepB:
script:
- echo "B"
我如何设置第一个应该运行的阶段? 一些作业可以由多个GitLab Runner并行运行。 我只想确保在运行部署阶段之前完成了步骤A到B
我有这个.gitlab-ci.yml
文件:
stepA:
script:
- echo "A"
deploy:
script:
- echo "1"
stepB:
script:
- echo "B"
我如何设置第一个应该运行的阶段? 一些作业可以由多个GitLab Runner并行运行。 我只想确保在运行部署阶段之前完成了步骤A到B
stages
存在的目的。在此处,您用到了“stage”这个词,但实际上您描述的是一个“job”。.gitlab-ci.yml
的顶层定义您的两个阶段:stages:
- build
- dist
然后在每个作业上指定它所属的阶段:
stepA:
stage: build
script:
- echo "A"
deploy:
stage: dist
script:
- echo "1"
stepB:
stage: build
script:
- echo "B"
stepA
和stepB
(可以任意顺序或甚至并行),只有第一阶段成功后,才会运行deploy
。以下代码使用继承
Stages:
- Step-A
- Step-B
- Deploy
.Perform-Step-A:
stage: Step-A
script:
- echo "A"
.Perform-Step-B:
stage: Step-B
script:
- echo "B"
.Perform-Deploy:
stage: Deploy
script:
- echo "1"
Server1-Step-A:
extends: .Perform-Step-A
tags: Server-1-As-Runner //Else add SSH steps in Perfrom-A block
Server1-Step-B:
extends: .Perform-Step-B
tags: Server-1-As-Runner //Else add SSH steps in Perfrom-B block
Server1-Step-Deploy:
extends: .Perform-Deploy
tags: Server-1-As-Runner //Else add SSH steps in Perfrom-Deploy block
假设:
这是我在此处回答的概念性构建块,可以根据要求进行调整。
在同时部署多个服务器时最好工作。
注意:由于隐私原因,图像中的标记已被删除。
Jobs
和Stages
是不同的东西。Stage
是一组作业。 - KargWare