.gitlab-ci 阶段执行顺序
.gitlab-ci stages execution order
我有这个 .gitlab-ci.yml 文件:
stepA:
script:
- echo "A"
deploy:
script:
- echo "1"
stepB:
script:
- echo "B"
如何设置第一个 运行 阶段?
一些作业可以由多个 gitlab 运行 人员并行 运行。
我只想确保步骤 A 到 B 在 运行 部署阶段
之前完成
这正是 stages
的用途。在实际描述 "job" 时,您在这里使用了 "stage" 这个词。
同一阶段的作业可能会 运行 并行(如果您有 运行 支持它的人),但会按顺序 运行 进行。
首先在 .gitlab-ci.yml
的顶层定义您的 2 个阶段:
stages:
- build
- dist
然后在每个作业上,指定它所属的阶段:
stepA:
stage: build
script:
- echo "A"
deploy:
stage: dist
script:
- echo "1"
stepB:
stage: build
script:
- echo "B"
现在 stepA
和 stepB
将首先 运行(以任何顺序甚至并行)然后是 deploy
,前提是第一阶段成功。
Below code uses in inheritance
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
假设:
- 您正在为您的应用程序和在同一台机器上配置的运行器使用专用运行器。如果不是,请随时修改和 ssh 步骤。
这是我在这里回答的概念构建块,可以根据需要进行调整。
一次在多台服务器中部署时在我的案例中效果最好。
注意:出于隐私原因,标签已从图像中删除。
我有这个 .gitlab-ci.yml 文件:
stepA:
script:
- echo "A"
deploy:
script:
- echo "1"
stepB:
script:
- echo "B"
如何设置第一个 运行 阶段? 一些作业可以由多个 gitlab 运行 人员并行 运行。 我只想确保步骤 A 到 B 在 运行 部署阶段
之前完成这正是 stages
的用途。在实际描述 "job" 时,您在这里使用了 "stage" 这个词。
同一阶段的作业可能会 运行 并行(如果您有 运行 支持它的人),但会按顺序 运行 进行。
首先在 .gitlab-ci.yml
的顶层定义您的 2 个阶段:
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
假设:
- 您正在为您的应用程序和在同一台机器上配置的运行器使用专用运行器。如果不是,请随时修改和 ssh 步骤。
这是我在这里回答的概念构建块,可以根据需要进行调整。
一次在多台服务器中部署时在我的案例中效果最好。
注意:出于隐私原因,标签已从图像中删除。