# 产品术语

# 流水线

流水线来自于工业自动化流水线作业,对于研发过程,通过自动化平台完成从代码提交到交付上线的全流程。

  • 流水线由前后串连的Stage(阶段)组成。

  • 每个阶段又可以由一组可串并联工作的Job(任务) 组成。

  • Job是流水线的最小工作单元。 例如下图的流水线包含了“编译”、“dev-部署发单”、“发版”、“online-部署发单”四个阶段, 其中“online-部署发单”这个阶段又包括“internal部署”和“线上环境部署”两个Job

流水线示例图

# 构建版本

DevOps平台系列产品都使用业界比较通用的语义化版本 (opens new window), 不允许胡乱设置版本名称。 这样虽然少了一些自由,但是大家约定俗称,简单高效。 构建版本是指: 流水线每次执行,系统自动生成的三位数字版本: 例如1.0.0-1 流水线中的编译任务执行后,会将编译产出上传至制品库的半成品库中,也使用此版本号。 构建版本的生成规则是系统根据最新的三位“发布版本”,结合代码库下流水线的构建号,综合生成新的构建版本号如:1.0.0-1,1.0.0-2。

# 发布版本

当代码通过测试,达到可交付条件时,可通过流水线的"发布版本"插件发布一个正式版本,叫做"发布版本"。 发布版本由三位数字组成。如1.0.1 版本号可通过"发布版本"插件的设置功能设置。如不设置,"发布版本"插件运行时,会在最新的发布版本基础上,第三位版本加一,自从创建一个发布版本号。 并且将编译任务产生的半成品,归档至制品库的成品库,成品的版本号即使用此发布版本号。

# 半成品

和制品库中的半成品概念相同,在制品库中具体是指编译插件生成的产出包。 半成品产出包会上传至制品库的半成品库,并且版本号为流水线中的“构建版本”。

# 成品

和制品库中的成品概念相同,是指经过测试,符合交付条件的归档制品。 由流水线的"发布版本"插件执行时,将半成品归档至制品库的成品库,且版本号为流水线的“发布版本”。

# 插件

流水线上的各任务,都是由对应的插件提供相应功能。 在流水线编辑视图,可设置各任务的插件,并对插件进行初始设置。如下图所示:

流水线示例图

# 环境变量

流水线的上下游任务需要数据传递的时候,可以通过环境变量的方式进行。 使用方法:

${环境变量名}

环境变量分为三种:

  • ①系统环境变量
    指流水线开始运行时,流水线预制在系统中,可以直接使用的环境变量
系统变量 说明
SYS_SERVER_URL agent注册设置时server_url字段
SYS_SERVER_SCHEME 通过解析agent端设置的server_url字段解析的协议(http或https)
SYS_SERVER_HOST 通过解析agent端设置的server_url字段解析的主机地址
SYS_SERVER_PORT 通过解析agent端设置的server_url字段解析的端口(未设置的默认值,https为443,http为80)
SYS_WORKSPACE 构建时的工作空间(如:/builds/xxx)
SYS_LAST_RELEASE_VERSION 上次发布的版本号
SYS_PIPELINE_NAME 流水线名称
SYS_PIPELINE_BUILD_NUMBER 流水线构建号,流水线范围内自增
SYS_PIPELINE_BUILD_ID 流水线构建id,流水线全局唯一
SYS_PIPELINE_ID 流水线id,流水线全局唯一
SYS_TRIGGER_USER 流水线触发人
SYS_CI_TOKEN 构建用户的token,任务创建时自动生成,任务结束即自动销毁
SYS_BUILD_REPO 代码库全称,例如代码库为:test/code/frontend,则值为:test/code/frontend
SYS_BUILD_REPO_NAME 代码库名称,例如代码库为:test/code/frontend,则值为:frontend
SYS_BUILD_REPO_DIR 代码库目录,例如代码库为:test/code/frontend,则值为:test/code
SYS_BUILD_REPO_ID 代码库id,代码库全局唯一
SYS_BUILD_BRANCH 分支名
SYS_BUILD_COMMIT commitID
SYS_BUILD_SNAPSHOT_VERSION 构建版本号
SYS_BUILD_RELEASE_VERSION 发布版本号
SYS_BUILD_DATE 流水线触发日期,例如:2021-12-15,输出为:20211215
SYS_BUILD_YEAR 流水线触发年份,例如:2021-12-15,输出为:2021
SYS_BUILD_MONTH 流水线触发月份,例如:2021-12-15,输出为:12
SYS_BUILD_DAY 流水线触发月份中的第几天,例如:2021-12-15,输出为:15
SYS_BUILD_DATE_TIMESTAMP 流水线触发时间,格式为YYYY.MM.dd-hhmmss,例如:2021.12.15-134856
SYS_BUILD_COMMIT_TIMESTAMP 流水线对应的commit的提交时间,格式为YYYY.MM.dd-hhmmss, 例如:2021.12.7-134856
SYS_BUILD_BASE_COMMIT 流水线基准对应的commitID
  • ②用户自定义静态环境变量
    是指用户在流水线配置界面,或者手动执行界面,用户自行添加配置的环境变量,这些环境变量的值是固定的;

  • ③用户自定义动态环境变量
    如需在流水线执行时,动态修改或创建自定义环境变量,可在插件脚本中, 在插件工作空间根目录下(和插件下载代码的根目录相同)创建:
    runtime_variables.txt
    的文件,在文件中使用key=value这种形式为变量赋值或者修改。
    例如在插件脚本中执行: echo “name=value” > runtime_variables.txt
    注:①动态环境变量定义不能有空格②不能修改和创建SYS开头的系统环境变量③文件必须放在工作空间根目录下

  • 环境变量的使用范围
    对于系统环境变量,其使用范围是流水线所有阶段和任务;
    用户自定义静态环境变量,其使用范围也是流水线所有阶段和任务;
    用户自定义动态环境变量,其只能在当前任务执行结束后,后续执行的任务中生效;

  • 环境变量值的修改
    SYS开头的系统环境变量不允许修改;
    用户自定义环境变量可以通过③中描述的修改runtime_variables.txt文件内容的方法进行动态创建和修改;