工作流语法
Gokins Gokins

工作流语法

version

必填 Gokins的工作流yml版本,目前固定为1.0

示例一:

1
version : 1.0

系统变量

在流水线配置界面中定义的变量,可定义私密变量仅可编辑流水线的人才能查看.

此变量优先级低于vars,所以可在vars里面使用 ${{xxx}} 引用

vars

工作流变量,可以在工作流中使用,语法为 ${{xxx}}

示例: 添加变量到工作流

1
2
3
4
version : 1.0
vars:
Hello: hello

示例: 在工作流中使用变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
version: 1.0
vars:
Hello: hello
stages:
- stage:
name: 使用变量
displayName: 使用变量
steps:
- step: shell@sh
name: build
displayName: 这是一个变量示例
env:
commands:
- echo ${{Hello}}

stages

必填 构建阶段,工作流运行一个或者多个阶段。 阶段是顺序运行作业。

stages.stage

必填 构建阶段,工作流运行一个或者多个阶段。

示例: 多个阶段

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
version: 1.0
vars:
Hello: hello
stages:
- stage:
name: 第一个构建阶段
displayName: 第一个构建阶段
steps:
- step: shell@sh
name: stage1
displayName: 第一个构建阶段的第一个构建步骤
env:
commands:
- echo ${{Hello}}
- echo frist stage
- stage:
name: 第n个构建阶段
displayName: 第n个构建阶段
steps:
- step: shell@sh
name: stagen
displayName: 第n个构建阶段的第n个构建步骤
env:
commands:
- echo ${{Hello}}
- echo n stage

stages.stage.name

必填 构建阶段名称,是工作流中的唯一ID,在一个工作流中不能有name相同的stage

示例一:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
version: 1.0
vars:
Hello: hello
stages:
- stage:
name: Build1
displayName: Build1
steps:
- step: shell@sh
name: Step1
displayName: 第一个构建阶段的第一个构建步骤
env:
commands:
- echo frist stage

stages.stage.displayName

构建阶段描述,用于描述构建阶段的用途。

示例一:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
version: 1.0
vars:
Hello: hello
stages:
- stage:
name: Build1
displayName: 用来构建的第一个stage
steps:
- step: shell@sh
name: Step1
displayName: 第一个构建阶段的第一个构建步骤
env:
commands:
- echo frist stage

stages.stage.stpes

必填 构建阶段中的构建步骤,一个构建阶段包含一个或者多个构建步骤。

示例: 多个构建步骤

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
version: 1.0
vars:
Hello: hello
stages:
- stage:
name: 第一个构建阶段
displayName: 第一个构建阶段
steps:
- step: shell@sh
name: stage1
displayName: 第一个构建阶段的第一个构建步骤
env:
commands:
- echo ${{Hello}}
- echo frist stage
- stage:
name: 第n个构建阶段
displayName: 第n个构建阶段
steps:
- step: shell@sh
name: stagen
displayName: 第n个构建阶段的第n个构建步骤
env:
commands:
- echo ${{Hello}}
- echo n stage

stages.stage.stpes.step

必填 构建阶段中的构建步骤,一个构建阶段包含一个或者多个构建步骤。 构建步骤默认是并行执行的,如果您需要串行执行,您可以使用 stages.stage.stpes.step.wait 关键词在其它步骤上进行依赖。

stages.stage.stpes.step.name

必填 构建步骤名称,是stages.stage.stpes中的唯一ID,在一个stages.stage.stpes中不能有name相同的stpe

示例: 多个构建步骤

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
version: 1.0
vars:
Hello: hello
stages:
- stage:
name: 第一个构建阶段
displayName: 第一个构建阶段
steps:
- step: shell@sh
name: stage1
displayName: 第一个构建阶段的第一个构建步骤
env:
commands:
- echo ${{Hello}}
- echo frist stage
- stage:
name: 第n个构建阶段
displayName: 第n个构建阶段
steps:
- step: shell@sh
name: stagen
displayName: 第n个构建阶段的第n个构建步骤
env:
commands:
- echo ${{Hello}}
- echo n stage

stages.stage.stpes.step.displayName

构建步骤描述,用于描述构建步骤的用途。

示例一:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
version: 1.0
vars:
Hello: hello
stages:
- stage:
name: Build1
displayName: Build1
steps:
- step: shell@sh
name: Step1
displayName: 第一个构建阶段的第一个构建步骤
env:
commands:
- echo frist stage

stages.stage.stpes.step.env

构建步骤的环境变量,可以使用 ${} 获取系统环境变量

示例: 构建步骤中使用步骤环境变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
version: 1.0
vars:
stages:
- stage:
name: Build1
displayName: Build1
steps:
- step: shell@sh
name: Step1
displayName: 第一个构建阶段的第一个构建步骤
env:
step1Ens: fStep
commands:
- echo ${step1Ens}

stages.stage.stpes.step.commands

必填 commands允许您给构建步骤添加执行脚本。运行脚本都是串行的顺序执行。

示例: 构建步骤添加执行脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
version: 1.0
vars:
stages:
- stage:
name: Build1
displayName: Build1
steps:
- step: shell@sh
name: Step1
displayName: 第一个构建阶段的第一个构建步骤
env:
commands:
- echo 1
- echo 2
- echo 3
- sleep 3s
- ls -lh

stages.stage.stpes.step.wait

wait字段将会使构建步骤依赖于其他步骤执行完毕后执行

示例: 依赖其它构建阶段

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
version: 1.0
vars:
stages:
- stage:
name: Build1
displayName: Build1
steps:
- step: shell@sh
name: Step1
displayName: 第一个构建阶段的第一个构建步骤
env:
step1Ens: fStep
commands:
- echo ${step1Ens}
- sleep 3s
- step: shell@sh
name: Step2
displayName: 第2个构建阶段的第2个构建步骤
env:
wait:
- Step1
commands:
- echo wait Step1
- sleep 3s
- step: shell@sh
name: StepN
displayName: 第n个构建阶段的第n个构建步骤
env:
wait:
- Step2
commands:
- echo wait Step2

stages.stage.stpes.step.artifacts

工作流中产生的制品,您可以通过artifacts上传到制品库

更多的制品库信息,请参见制品库

示例: 生产制品

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
version: 1.0
vars:
stages:
- stage:
name: artifactStage
displayName: artifactStage
steps:
- step: shell@sh
name: artifactStep
displayName: artifactStep
env:
commands:

artifacts:
- scope: repo
repository: svianvyd
name: npxpublic
path: ./public

stages.stage.stpes.step.useArtifacts

构建步骤中允许您通过useArtifacts在步骤中使用制品库的制品

更多的制品信息,请参见制品

示例: 生产制品

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
version: 1.0
vars:
stages:
- stage:
name: artifactStage
displayName: artifactStage
steps:
- step: shell@ssh
name: publish
displayName: artifact publish
input:
host: ${{SITE_HOST}}
user: ${{SITE_USER}}
pass: ${{SITE_PASS}}
workspace: ${{SITE_PATH}}
useArtifacts:
- scope: repo
repository: svianvyd
name: npxpublic
alias: publicdir
isUrl: true
path: public
commands:
- unzip -o -O UTF-8 public.zip