配置微服务变更流水线
微服务是一种软件治理架构,一个大型的复杂软件项目,可以由一个或多个微服务组成,系统中各个微服务之间是松耦合的,各微服务并行独立开发、构建、验证及部署上线。变更是一次研发交付活动的载体,项目的需求研发和漏洞修复都可以放在变更上来实现,一个变更只能属于一个微服务。在微服务中,用户可以创建流水线资源,并将其设置为变更流水线,用于与微服务下的变更资源进行联动,通过变更流水线发布一个或多个变更来实现项目的快速交付。
微服务具备以下优点:
- 边界清晰:每一个微服务只关注一个特定的业务功能,开发和维护单个微服务都相对简单。
- 支持独立部署:单个微服务独立部署更新,不会对整个业务运行造成影响,保证业务7*24小时在线。
- 技术多样化:微服务可以使用不同的技术栈来实现,不同服务之间通过restful API通信,每个服务可以使用不同的技术框架和不同的存储库来实现。
与普通流水线相比,变更流水线具有以下特点:
- 单个微服务下仅允许存在一条基于变更触发的流水线。
- 变更流水线基于变更触发,运行时会自动创建集成分支,并在运行成功后将集成分支内容合并至主干分支。
- 变更流水线运行成功后会自动更新发布的变更状态。
- 变更流水线仅支持单实例运行。
- 变更流水线不支持事件触发或定时任务触发。
新建流水线微服务
- 访问CodeArts Pipeline首页,进入项目下流水线。
- 单击“微服务”,进入微服务列表页面。
- 单击“新建微服务”,进入“新建微服务”页面,配置相关参数。
表1 新建微服务 参数项
说明
所属项目
微服务所在项目,不可更改。
微服务名称
微服务的名称。支持大小写英文字母、数字、“_”,不超过128个字符。
代码源
代码仓库来源,当前仅支持Repo。
说明:可暂不选择代码源,微服务创建成功后,可根据需要通过单击微服务名称,进入微服务概览页再进行关联。
代码仓
微服务关联的代码仓库,选择已创建的代码仓库。
说明:一个代码仓只能关联一个微服务。
默认分支
微服务关联的默认分支,执行微服务流水线时默认使用的分支。
说明:变更流水线执行完成后,所有变更特性分支都将会合入默认分支。
语言
微服务的开发语言,支持Java、Python、Node.js、Go、.Net、C++、PHP。
描述
长度不超过1024个字符。
- 单击“确定”,完成微服务创建并进入微服务“概览”页。
概览页展示微服务的创建人、创建时间、代码源等信息,可修改微服务开发语言、关联的代码仓库和描述信息。
更换代码仓库时,如果微服务下存在没有关闭的变更或运行中的流水线,页面会弹出“数据处理”侧滑框,需先关闭所有变更并停止所有运行中的流水线。
- 返回微服务列表,可以查看已创建的微服务,列表项说明如下。
表2 微服务列表 列表项
说明
微服务
微服务的名称。
创建人
创建微服务的用户名。
创建时间
创建微服务的时间,将鼠标悬浮至“创建时间”列,单击,可以根据创建时间排序微服务。
状态
展示微服务当前状态信息,创建后会自动处于激活状态。
操作
单击可收藏该微服务,收藏成功后图标变为,再次单击可取消收藏;单击,可删除该微服务。
说明:删除微服务,微服务内所有变更记录和流水线都将会被删除,请谨慎操作。
- 微服务列表展示项目下的所有微服务。
- 支持在搜索栏中输入微服务名称关键字进行搜索。
新建变更流水线
- 访问CodeArts Pipeline首页,进入项目下流水线。
- 单击“微服务”,进入微服务列表页面。
- 单击微服务名称,进入微服务“概览”页面。
- 单击“流水线”,进入微服务流水线列表页面。
- 单击“新建流水线”,进入“基本信息 ”页面,配置相关参数。
表3 新建流水线 参数项
说明
所属项目
微服务所在的项目。
名称
流水线的名称,默认根据当前时间生成。支持中文、大小写英文字母、数字、“-”、“_”,长度不超过128个字符。
流水线源
流水线代码来源,微服务下流水线仅支持Repo。
代码仓
微服务关联的代码仓库。
说明:修改微服务的代码仓库,微服务下所有流水线配置的代码仓库会自动更改。
默认分支
微服务关联的默认分支。
说明:修改微服务的默认分支,微服务下所有流水线配置的默认分支会自动更改。
Repo HTTPS授权
配置授权扩展点以提升代码库操作权限,主要用于微服务变更流水线和部分仓库操作插件。单击“新建授权”,可添加CodeArts Repo HTTPS服务扩展点,配置方法请参考新建CodeArts服务扩展点。
说明:新建CodeArts Repo HTTPS服务扩展点时,如果用户名密码填写错误,会授权失败并导致流水线执行失败。具体问题请参考常见问题。
别名
仓库别名。支持大小写英文字母、数字、“_”,长度不超过128个字符。
设置别名后可生成仓库对应的系统参数,如:“别名_REPOSITORY_NAME”,表示仓库名称。生成的参数可在参数设置页面查看,并在流水线中通过“${参数名}”进行引用。
基于变更触发
开启“基于变更触发”开关的流水线即为变更流水线,在微服务流水线列表中,变更流水线会被标识为。
说明:单个微服务下仅允许存在一条基于变更触发的流水线。
描述
长度不超过1024个字符。
- 单击“下一步”,进入“选择模板”页面,根据需要选择对应模板,在模板基础上快速新建任务;也可以选择“空白模板”,即不使用模板,直接新建。
- 单击“确定”,根据需要编排流水线,然后单击“保存”。
新建微服务变更
管理微服务下的变更信息。
- 访问CodeArts Pipeline首页,进入项目下流水线。
- 单击“微服务”,进入微服务列表页面。
- 单击微服务名称,进入微服务“概览”页面。
- 单击“变更”,进入微服务变更列表页面。
展示微服务下所有变更信息,单击“所有变更”,选择“我的变更”可以筛选出当前登录用户创建的变更信息。
- 单击“新建变更”,进入“基本信息 ”页面,配置相关参数。
表4 新建变更 参数项
说明
变更标题
输入变更标题。长度不超过256个字符。
代码仓
微服务关联的代码仓库,不可更改。
代码分支
本次变更新需求的开发分支,可从默认分支拉取新分支,也可关联其他已有分支。
说明:变更通过流水线发布成功后,会将代码分支自动合并至微服务的默认分支。
关联工作项
支持关联需求管理中开始态和进行态的工作项。
- 单击“确定”,完成变更创建并进入“变更详情”页。
页面展示变更概览信息、关联工作项、操作历史,还可以对变更执行提交发布、退出发布、撤销变更操作。
图1 变更详情
- 变更的发布生命周期为:开发中 > 待发布 > 发布中 > 已发布。
- 阶段状态为“开发中”的变更,单击“编辑工作项”,可以重新选择工作项。
以下详细介绍提交发布、退出发布、撤销变更具体操作:
- 提交发布
针对阶段状态为“开发中”的变更,单击“提交发布”,弹出“提交变更”对话框。
- 如果微服务下不存在变更流水线,请根据提示新建变更流水线。
- 如果微服务下存在变更流水线,直接单击“确定”,可将变更提交到变更流水线的发布列表。
提交发布后,变更状态由“开发中”变为“待发布”。
- 退出发布
针对阶段状态为“待发布”或“发布中”的变更,单击“退出发布”,可将变更从变更流水线的发布列表退出,变更状态变为“开发中”。
阶段状态为“发布中”的变更,如果变更流水线正在运行,则无法退出发布。
- 撤销变更
针对阶段状态为“开发中”的变更,单击“撤销变更”,弹出“撤销变更”对话框。
单击“确定”,即可将变更状态变为“已撤销”,同时变更被删除。
执行变更流水线
- 访问CodeArts Pipeline首页,进入项目下流水线。
- 单击“微服务”,进入微服务列表页面。
- 单击微服务名称,进入微服务“概览”页面。
- 单击“流水线”,进入微服务流水线列表页面。
- 单击流水线名称,进入流水线“执行历史”页面。
- 单击右上角“执行”,弹出“执行配置”对话框,进行如下配置。
图2 配置变更流水线执行信息
- 变更列表:变更列表展示阶段状态为“待发布”和“发布中”的变更,运行变更流水线时需要选择一个或多个变更。
- 运行参数配置:如果流水线配置了运行时参数,请根据需要设置参数值并保存,可参考流水线参数应用示例。
- 执行阶段配置:流水线支持选择任务执行,可以选择一个或多个,默认执行全部任务。
- 执行描述:填写本次运行的调试信息。
- 配置完成后,单击“执行”,进入变更流水线执行详情页面。
图3 执行变更流水线
变更流水线运行时会默认添加“合并集成分支”和“合并主干”阶段。
- 合并集成分支:变更流水线会自动从主干分支拉出一条新分支,并将本次运行变更的所有特性分支集成到该新分支,然后通过这条集成分支来运行流水线。
- 合并主干:将集成分支合并回主干分支。
- 执行完成后,可查看流水线执行结果。
变更流水线执行成功时,会将本次运行选择的所有变更状态改为“已发布”状态。
- 单击流水线名称,进入“流水线详情”页面
- 单击流水线源卡片的“查看更多”,弹出运行变更侧滑框,展示本次流水线运行时选择的变更信息。
- 单击列表内“变更标题”可以跳转到变更详情页面。
- 单击“发布列表”页签,切换到“发布列表”页面
- 发布列表页面展示所有阶段状态为“待发布”和“发布中”的变更。
- 列表支持在搜索栏中输入变更名称关键字进行搜索。
- 单击“操作”列,弹出“退出发布”对话框,单击“确认”会将变更退出变更流水线的发布列表,变更状态重置为“开发中”。
阶段状态为“发布中”的变更,如果变更流水线正在运行,则需要等待变更流水线运行完成或停止变更流水线后才可以退出发布。
- 单击流水线名称,进入“流水线详情”页面