制品说明
Gokins Gokins

制品说明

Gokins中在工作流产生的制品,Gokins有3种管理办法,您可以在scope字段中标注制品的生命周期:

  • archive:(repo)生成存档制品,制品不会因为流水线的结束而被销毁,而是会被上传到制品库中提供下载或者在其他流水线中引用
  • pipeline:(pipe)生成流水线内使用的制品,在整个流水线运行状态时都可以再次引用,但是制品将会随着流水线状态终止而被销毁
  • variable:(var)导出流水线内使用的环境变量,随着流水线状态终止而失去作用

小提示: 可以使用括号里的缩写

制品库

Gokins1.0 能够管理制品和在构建中使用制品

下文将会从几个方便来介绍如何使用制品库和如何在yml上使用制品库的方式

  • 每个制品库都会拥有自己的唯一ID
  • 制品库的唯一ID是在流水线中使用制品库的重要凭证
  • 你可以在制品库页面获取制品库的唯一ID

生成制品

Yaml样例

1
2
3
4
5
artifacts:          #  生成制品
- scope: archive #制品类型
repository: svianvyd # 制品库ID
name: npxpublic # 制品名称
path: ./public # 文件路径

字段说明:

字段 说明 样例
scope 制品类型 archive,pipeline,variable
displayName displayName
repository 制品库ID
name 制品名称
path 文件路径(相对于工作目录) ./dir test.jar ...

存档制品(Archive)

使用存档制品需要保证制品库和流水线存在于同一个组织,并且拥有制品库ID.

Yaml样例

1
2
3
4
5
artifacts:          #  制品
- scope: archive #制品类型
repository: svianvyd # 制品库ID
name: npxpublic # 制品名称
path: ./public # 文件路径

流水线制品(Pipeline)

产生的制品只能在流水线当前构建中使用

Yaml样例

1
2
3
4
artifacts:          #  制品
- scope: pipeline #制品类型
name: modules # 制品名称
path: ./node_modules # 文件路径

环境变量制品(Variable)

必须保证环境变量中存在name的变量,产生的变量只能在流水线当前构建中使用

Yaml样例

1
2
3
artifacts:          #  制品
- scope: variable #制品类型
name: PATH # 环境变量名称

流水线中使用制品

Yaml样例

1
2
3
4
5
6
7
8
9
10
useArtifacts:     #  使用制品
- scope: xxx # 制品类型
repository: svianvyd # 制品库ID
name: npxpublic # 制品名称
alias: publicdir # 别名
isUrl: true
path: public

fromStage: xxx
fromStep: xxx

字段说明:

字段 说明 样例
scope 制品域 archive,pipeline,variable
displayName displayName
repository 制品库ID
name 制品名称
alias 制品别名
isUrl 是否是URL 详细请参考: 制品Url
path 路径 详细请参考: 制品Url
fromStage 选择stage pipeline,variable中使用
fromStep 选择step pipeline,variable中使用

存档制品(Archive)

引入存档制品需要保证制品库和流水线存在于同一个组织,并且拥有制品库ID.

Yaml样例

1
2
3
4
5
6
7
useArtifacts:          #  制品
- scope: archive #制品类型
repository: svianvyd # 制品库ID
name: npxpublic # 制品名称
alias: publicdir # 别名
isUrl: true
path: ./public # 文件路径

特殊字段介绍

  • repository: 制品库ID
  • name: 制品库中的制品名,可以使用name@xxx获取某个版本的制品(默认使用最新)
    1
    2
    name: npxpublic@v1.0.0 #version
    name: npxpublic@60f1a18159d63b0001000043 #sha&id
  • alias: 制品别名,在URL环境变量中使用(默认与name字段一致)
  • isUrl: 是否是URL(当path为空时自动为true)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 以下说的 "path" 为yaml中的path字段

    false:
    # 引入制品到工作目录的 path
    # 在ssh中无效,因为工作目录在远程服务器,无法同步文件,只能使用URL下载
    true:
    # 把下载制品url加入到环境变量:ARTIFACT_DOWNURL_${{alias}}.(eg: $ARTIFACT_DOWNURL_publicdir)
    # 此时path用于指定下载链接指向的制品中文件路径(eg: public/xxx.js,main.jar)
    # 当path为目录时下载会把目录压缩为zip
  • path: 根据isUrl有不同的定义,请参考上文

流水线制品(Pipeline)

引入当前构建中某个stage的某个step中产生的pipeline制品.

Yaml样例

1
2
3
4
5
6
useArtifacts:          #  制品
- scope: pipeline #制品类型
fromStage: stage1
fromStep: step1
name: modules # 制品名称
path: ./node_modules # 文件路径

特殊字段介绍

  • fromStage: 选择某个stage,默认为当前stage,一般为前面已经执行的stage
  • fromStep: 选择fromStage下的某个step,一般搭配wait使用,保证制品已经存在
  • name: fromStep中产生的pipeline制品name
  • path: 引入制品到工作目录的 path 路径

环境变量制品(Variable)

引入当前构建中某个stage的某个step中产生的variable环境变量.

Yaml样例

1
2
3
4
5
useArtifacts:          #  制品
- scope: variable #制品类型
fromStage: stage1
fromStep: step1
name: modules # 制品名称

特殊字段介绍

  • fromStage: 选择某个stage,默认为当前stage,一般为前面已经执行的stage
  • fromStep: 选择fromStage下的某个step,一般搭配wait使用,保证制品已经存在
  • name: fromStep中产生的variable变量name
    1
    2
    3
    4
    5
    6
    7
    eg:
    fromStep中:
    export HELLO="hello world"
    # artifacts.variable["HELLO"] 产生变量制品
    当前Step中:
    # useArtifacts.variable["HELLO"] 引用变量制品
    echo $HELLO

案例

Gokins Demo

http://gokins.cn:8030

1
2
用户名: guest
密码: 123456