# 产品术语
# 流水线
流水线来自于工业自动化流水线作业,对于研发过程,通过自动化平台完成从代码提交到交付上线的全流程。
流水线由前后串连的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文件内容的方法进行动态创建和修改;