- 概述
- 什么是制品中心
- 制品仓库的类型
- 制品中心的权限管理
概述
什么是制品中心
制品中心是研发云平台提供的,用于存储和管理项目团队构建过程输出物的功能模块,输出物包括软件包、容器镜像、应用配置文件等二进制制品,并统一管理项目构建依赖的第三方组件制品。
制品中心支持业界主流技术栈的制品管理,包括maven、docker、npm、python、go、rubyGems等20多种。针对还不能明确归类的制品文件,支持以通用Generic类型制品方式进行存储。
制品中心还支持常用制品的组件安全及许可扫描分析,包括maven、docker、npm、python、go、rubyGems等。
制品仓库的类型
制品中心以制品仓库形式组织和管理制品。制品仓库包括本地仓库、远程仓库、虚拟仓库三种类型:
-
本地仓库 :也称为项目制品库,存储项目编译构建生成的软件制品及相关配置文件;配置严格的读写操作权限。
-
远程仓库 :代理公网的二进制软件制品仓库,系统提供本地统一缓存,提升访问效率;所有用户可读。
-
虚拟仓库 :聚合本地仓库和远程仓库的一种逻辑仓库,暴露项目唯一的入口访问方式; 虚拟仓库访问权限跟随所聚合的本地仓库和远程仓库的权限,若用户对虚拟仓库包含的某个本地仓库无权限访问,则访问虚拟仓库也不能获取该本地仓库的制品。
针对常用制品类型,制品中心已创建公共虚拟仓库(例如public-maven- virtual),聚合常用制品类型的多个远程仓库。并针对项目编译构建依赖的比翼组件、天翼paas组件,创建了对应的公共虚拟仓库,项目组根据需要可聚合此类公共虚拟仓库到项目虚拟仓库。
制品中心与组件广场协同提供共享仓库功能,项目组可通过项目虚拟仓库聚合项目本地仓库、二方库、内部组件共享仓库、公共虚拟仓库,实现通过一个项目虚拟仓库下载编译构建所需的全部依赖组件。
制品中心的权限管理
制品中心的使用者包含制品仓库管理员、制品仓库开发人员、制品仓库只读人员。其中,项目负责人/项目管理员有权创建制品仓库,制品仓库的创建者缺省即为该制品仓库的管理员。
下面分别说明制品仓库管理员、制品仓库开发人员、制品仓库只读人员的权限。
制品仓库管理员
- 创建项目本地仓库和虚拟仓库
- 删除项目本地仓库和虚拟仓库
- 设置项目本地仓库,包括访问权限、制品安全消息通知策略等
- 设置项目虚拟仓库,包括设置管理人员信息及所聚合的仓库信息
- 配置制品同步
- 设置自动清理策略清理项目本地仓库的制品
- 制品仓库开发人员全部权限
制品仓库开发人员
- 管理API Key
- 查看制品仓库及制品
- 检索制品及制品上传、下载、删除等操作
- 制品晋级
- 制品全生命周期溯源
- docker镜像创建标签
- 手动清理项目本地仓库的制品
- 制品同步记录查看及手工同步到远程目标仓库
- 查看公共制品仓库
- 查看项目制品仓库的制品安全
制品仓库只读人员
-
管理API Key
-
查看制品仓库及制品
-
检索制品及下载制品
-
制品全生命周期溯源
-
查看公共制品仓库
-
查看项目制品仓库的制品安全
-
制品仓库的创建与配置
- 创建本地制品仓库
- 创建项目虚拟仓库
- 设置本地制品仓库访问权限
- 设置项目虚拟仓库管理人员权限
- 删除制品仓库
制品仓库的创建与配置
创建本地制品仓库
项目负责人/项目管理员登录研发云,进入“项目设置”——“制品”,点击“新建本地制品库”。
选择制品类型,制品中心通过制品类型实现制品包的索引。
选择仓库生命周期,其中snapshot表示开发阶段的仓库,对于maven的snapshots版本和docker镜像最多保存5个版本,当上传制品版本超过5个,旧的制品将被覆盖。release表示发布仓库,保存制品的全部版本。
选择制品仓库安全通知策略,其中实时通知表示检测到制品高危安全风险问题时实时通知仓库管理员。每日通知表示每日汇总仓库中制品高危安全风险问题,一次性通知仓库管理员。不通知表示检测到仓库中制品高危安全风险问题时不通知仓库管理员,仓库管理员可进入“制品库安全”界面查看仓库中的制品安全问题。
仓库名称自动生成,检查确认仓库名称。填写仓库描述信息,可填写介绍或用途等。点击确定完成制品仓库创建。
注意:maven的依赖包区分snapshots版本和release版本,最佳实践是使用snapshot仓库存储和管理开发过程中的snapshots版本包。
创建项目虚拟仓库
项目负责人/项目管理员登录研发云,进入“项目设置”——“制品”,点击“新建虚拟制品库”。
选择制品类型,制品中心通过制品类型实现制品包的索引。
选择仓库生命周期,其中snapshot表示开发阶段的仓库。release表示发布仓库。仓库名称自动生成,检查确认仓库名称,填写仓库描述信息,可填写介绍或用途等。
勾选虚拟仓库包含的本地制品仓库、共享库和公共虚拟库。 包含的仓库按项目实际需要选择,选择的仓库越多则通过项目虚拟库下载依赖所需的时间越多。
如果需要通过项目虚拟仓库上传制品,则选择上传到本地仓库设置为“是”,并选择项目本地仓库。设置后通过项目虚拟仓库上传制品,则上传到所选的项目本地仓库。
点击确定完成项目虚拟制品仓库创建。
通过虚拟制品仓库下载制品时,系统按已选的仓库列表顺序进行查找,通过鼠标上下拖动列表中的仓库,仓库管理员可以调整所选仓库的查找顺序。建议按本地仓库、内部共享库、二方库、公共虚拟仓库的顺序排列所选仓库,当一个制品同时存储在多个仓库中,如果在列表前面的仓库中查到制品就会直接返回给用户。
设置本地制品仓库访问权限
制品仓库管理员登录研发云,进入“项目设置”——“制品”,查看本地制品仓库列表,点击列表右侧的编辑操作键,进入仓库权限管理设置。
选择仓库管理人员、仓库开发人员、仓库只读人员权限配置tab页,从项目团队成员中选择对应人员,确认保存。
制品仓库管理员还可以直接从项目视图进入,选择“项目制品库”,在仓库树状列表中选择要授予权限的制品仓库,在页面右上角点击编辑仓库图标。
选择仓库管理人员、仓库开发人员、仓库只读人员权限配置tab页,从项目团队成员中选择对应人员,确认保存。
设置项目虚拟仓库管理人员权限
项目虚拟仓库的读写权限跟随所聚合的仓库的读写权限。如果一个成员对所聚合的本地仓库没有读权限,则通过项目虚拟库也不能查看及下载这个本地仓库的制品。
项目虚拟仓库可设置管理人员权限,对项目虚拟仓库的信息及所聚合的仓库进行修改。
删除制品仓库
制品仓库管理员登录研发云,进入“项目设置”——“制品”,查看本地或虚拟制品仓库列表,点击列表右侧的删除操作键。
注:删除本地制品仓库,仓库中已有的制品将全部被删除,请谨慎操作!
- 用户APIKey管理及制品的查看与下载
- API Key管理
- 用户自助解锁
- 查看本地制品仓库及制品
- 检索制品及制品下载、删除
- 查看公共制品仓库
- 项目制品库和公共制品库使用设置
用户APIKey管理及制品的查看与下载
API Key管理
API Key是从项目本地制品仓库上传、下载制品的认证凭据,用于与用户账号一起校验用户身份。
开发人员登录研发云,进入项目视图,从左侧菜单栏选择“制品”,选择“项目制品库”,在页面右上角点击“我的APIKey设置”按钮。
点击“生成API Key”,生成API Key。
如果已经生成API Key,在“我的APIKey设置”中可操作复制API Key、重新生成API Key,或者删除API Key。
注:
1、研发云制品中心根据项目属性是否为“科研”、“云网”、“云公司”项目,使用的制品库集群不同,因而在不同项目中使用的APIkey可能不同。开发人员需要使用对应项目的制品仓库快速指引地址和API key,才能成功上传及下载制品。
2、项目管理员创建流水线前,需要先检查项目制品库页面的API key是否生成。若未生成API key,需先参考此处指引生成API key,流水线才能成功运行。
用户自助解锁
当用户认证身份时,API key输入错误超过5次,用户将被锁定,不能进行制品查看与上传下载等操作。用户可进入项目——制品——项目制品库,页面弹出“用户锁定”提示,用户可点击“自助解锁界面”,前往自助解锁页面。
在自助解锁页面,用户点击获取验证码,系统将发送短信验证码到用户账号关联的手机号码。用户输入短信验证码,点击“确认解锁”,即可实现用户锁定状态的解除。
查看本地制品仓库及制品
开发人员登录研发云,进入项目视图,从左侧菜单栏选择“制品”,选择“项目制品库”。右侧展示项目已有的制品仓库。点击制品仓库,以树状结构展示仓库下面的目录以及制品。
点击某个制品文件,右侧展示制品在制品仓库的路径、发布者、制品创建及修改时间、制品文件大小、下载次数及最近下载者等信息。
点击制品信息的右上角图标,可进行制品下载及制品删除等操作。
如果制品树状目录中仓库及制品目录、制品文件较多,可在已展开的目录树中输入关键字进行筛选。
检索制品及制品下载、删除
开发人员登录研发云,进入项目视图,从左侧菜单栏选择“制品”,选择“项目制品库”。右侧项目制品搜索栏可按制品名称或所依赖的组件名称进行制品搜索。
在搜索类型选择制品,输入制品名称关键字,点击查询按钮,下方显示符合搜索条件的制品列表。列表中显示制品名称、文件类型还是目录类型、所在的制品仓库名称、所在路径。并可选择某个制品进行下载及删除操作。
点击制品文件名,跳转显示制品及所在的仓库目录结构。
如果开发人员需要根据组件名称反查依赖该组件的制品,可在搜索类型选择组件,输入组件名称关键字,点击查询按钮,下方显示依赖了该组件的制品列表。列表中显示制品名称、文件类型还是目录类型、所在的制品仓库名称、路径。并可选择某个制品进行下载及删除操作。
点击制品文件名,跳转显示制品及所在的仓库目录结构。
查看公共制品仓库
开发人员登录研发云,进入项目视图,从左侧菜单栏选择“制品”,选择公共制品库。右侧显示系统已经创建的公共虚拟制品仓库。
每个公共制品仓库包含一个或多个远程仓库,显示每个远程仓库的远端源地址。只要远端源提供的组件,通过公共虚拟制品仓库即可代理下载。
公共制品仓库的使用指引可直接查看每个仓库对应的使用指引。
项目组如果有新增的官方代理源地址信息,可联系研发云平台运维人员配置增加。
点击某个公共制品仓库名称,可查看该仓库已代理缓存到研发云制品库的第三方组件包。项目组下载使用第三方组件包的地址可参考基本信息的快速指引地址。对于未缓存的组件,只要远端源仓库存在,也可通过公共制品库代理下载。
项目制品库和公共制品库使用设置
项目制品库和公共制品库在用户开发环境中使用设置参考“项目制品库使用指引”,包含常用制品包的上传及下载使用说明。
在研发云流水线中默认会使用公共制品库下载依赖,如果在构建阶段需要使用项目制品库,可在流水线的构建步骤中选择使用私有依赖仓库,配置对应的项目制品库。具体操作参考流水线配置相关指引。
- web页面上传制品
- Generic仓库上传制品
- npm仓库上传制品
- python仓库上传制品
- maven仓库上传制品
web页面上传制品
制品中心支持generic、maven、npm、python仓库通过页面上传制品。其中generic仓库不限上传的制品的文件格式,maven、npm和python为了满足客户端下载依赖需求,必须上传相应格式的打包文件。
如果maven、npm和python制品作为普通文件存储管理,不是作为其他项目编译构建的依赖包使用,建议直接上传到generic仓库。
除了本节介绍的页面上传制品方法,还可通过命令行工具上传制品。具体使用方法参考“项目制品库使用指引”,包含常用制品包的上传方法说明。
Generic仓库上传制品
开发人员登录研发云,进入项目视图,从左侧菜单栏选择“制品”,选择“项目制品库”,选择一个generic制品仓库,点击上传制品按钮。
在弹出的对话框中,选择本地电脑上的文件,根据需要可设置目标路径,缺省在仓库根目录。点击上传即可。
对于Generic仓库的页面上传,可一次选择多个文件进行批量上传。上传页面还可以设置制品元数据,用于后续筛选制品操作。
npm仓库上传制品
开发人员登录研发云,进入项目视图,从左侧菜单栏选择“制品”,选择“项目制品库”,选择一个npm制品仓库,点击上传制品按钮。
在弹出的对话框中,选择本地电脑上的npm制品包,根据需要可设置目标路径,点击上传即可。
python仓库上传制品
开发人员登录研发云,进入项目视图,从左侧菜单栏选择“制品”,选择“项目制品库”,选择一个python制品仓库,点击上传制品按钮。
在弹出的对话框中,选择本地电脑上的python制品包,根据需要可设置目标路径,缺省在仓库根目录。点击上传即可。
maven仓库上传制品
开发人员登录研发云,进入项目视图,从左侧菜单栏选择“制品”,选择“项目制品库”,选择一个maven制品仓库,点击上传制品按钮。注意snapshots版本的包务必上传到snapshot类型的maven仓库。
在弹出的对话框中,选择本地电脑上的maven制品包,系统自动会解析maven制品包的坐标参数,开发人员检查确认是否符合预期,如果不符合可进行修改,点击上传即可。
- 项目私有依赖jar包上传制品库指引
- 通过研发云web页面上传
- 通过脚本批量导入
项目私有依赖jar包上传制品库指引
通过研发云web页面上传
-
在制品仓库树状图中选择要上传的目标仓库,如仓库类型是maven
-
点击右上角上传菜单
-
选择本机文件jar包,检查制品坐标信息,点击上传将选择的文件上传到所选择的目标制品仓库。注意snapshots版本的包务必上传到snapshot类型的maven仓库。
4.如果jar包有对应的pom文件,建议也通过页面一并上传。
通过脚本批量导入
-
批量导入本地repository目录的jar包及pom文件的linux脚本示例如下,脚本在本地repository目录下执行。
-
执行脚本时带三个参数,-u 用户账号 -p 用户访问制品库的API key -r 要上传的制品仓库路径,制品仓库路径格式是(https://artifact.srdcloud.cn/artifactory/目标制品仓库名)
注意snapshots版本的包务必上传到snapshot类型的maven仓库。
- 还可以批量导入对应的sha1文件
- 制品元数据查看与设置
- 制品元数据查看
- 制品元数据设置
- 通过元数据搜索制品
制品元数据查看与设置
制品元数据记录制品开发构建、测试等全生命周期过程中产生的相关数据。项目开发人员也可以自定义元数据,丰富制品文件的关联信息。
制品元数据查看
开发人员登录研发云,进入项目视图,从左侧菜单栏选择“制品”,选择“项目制品库”。右侧以树状结构展示该开发人员有权限查看的项目制品仓库。选择制品仓库及已有的制品文件。右侧页面点击制品元数据菜单。下方展示已有的元数据的关键词和值信息。
当前对于使用流水线编译构建并上传的制品,可展示源代码相关信息,比如源代码的提交commit id、源代码仓库信息等。
制品元数据设置
开发人员点击新增元数据,可自定义关键词,并填写值信息,设置自定义元数据信息。
通过元数据搜索制品
开发人员进行制品搜索时,可以增加元数据条件搜索制品。开发人员登录研发云,进入项目视图,从左侧菜单栏选择“制品”,选择“项目制品库”,在页面上方搜索框输入制品名称关键字,点击右侧高级搜索框,可输入元数据条件,搜索符合条件的制品。
- 制品安全的查看与配置
- 查看制品仓库安全
- 查看制品文件安全
- 查看制品安全高危安全风险提醒
- 查看制品高危安全漏洞消息
- 设置制品仓库的高危安全漏洞消息通知策略
- 设置制品安全通知方式
制品安全的查看与配置
查看制品仓库安全
开发人员登录研发云,进入项目视图,从左侧菜单栏选择“制品”,选择“项目制品库”。右侧以树状结构展示该开发人员有权限查看的项目制品仓库。选择某个制品仓库,右侧页面展示仓库的基本信息和制品仓库安全信息。
点击制品库安全tab,展示该仓库中所有存在高危风险安全漏洞的制品信息列表,包括受影响的制品名称、问题严重性等级、问题类型、问题描述、问题扫描创建时间等信息。并可以通过上述信息查询筛选开发人员关注的安全问题。
点击列表中安全问题描述,展示该安全问题的详情。开发人员可重点关注问题组件、问题版本、修复版本、影响路径等信息,根据上述信息进行该组件安全问题修复。
点击列表中受影响的制品名称,跳转到仓库中该制品文件信息展示。
查看制品文件安全
开发人员在项目制品库树状图中选择某个制品,右侧页面展示制品的基本信息和制品安全信息。
点击制品安全tab,在页面下方展示该制品所包含的组件安全及许可证汇总信息,包括制品违规(高危安全漏洞)数量、制品安全问题数量、许可证数量等。
页面下方分区域展示了制品所包含的组件的违规(高危安全漏洞)问题、制品安全(全部安全漏洞)问题、许可证的列表。
制品违规列表展示高危安全漏洞问题,包括严重性等级、问题类型、问题描述、问题组件及问题扫描创建时间等信息。在查询框输入问题描述或组件名称关键字可进行查询筛选。
点击制品违规列表中的问题描述或问题组件信息,展示该违规安全问题的详情。开发人员可重点关注问题组件、问题组件版本、修复版本、影响制品、影响路径等信息,根据上述信息进行问题修复。
制品安全列表展示制品所包含的组件的全部安全漏洞问题,包括严重性等级、问题类型、问题描述、问题组件、修复版本及问题扫描创建时间等信息。在查询框输入问题描述或组件名称关键字可进行查询筛选。
点击制品安全列表中的问题描述或问题组件信息,展示该安全问题的详情。
开发人员可重点关注问题组件、问题组件版本、修复版本、影响制品、影响路径等信息,根据上述信息进行问题修复。
制品许可列表展示制品所包含的组件的许可证信息,包括组件名称、许可证等信息。在查询框输入组件名称或许可证关键字可进行查询筛选。
查看制品安全高危安全风险提醒
开发人员在项目制品库树状图中可查看哪些仓库存在新增的高危安全风险问题,展开树状图通过红色标志线可关联到具体新增高危安全风险问题的制品文件,并在制品库安全展示新增的高危安全风险问题数量。
如果开发人员查看了对应的制品安全后,则高危安全风险提示自动清除。
开发人员也可以点击树状图上方的更多操作按钮。点击“清除高危漏洞提醒”,则清除全部未查看的制品高危安全风险提醒。
查看制品高危安全漏洞消息
开发人员登录研发云WEB界面,在右上角点击消息图标。选择查看全部消息。
在全部消息页面,点击【研发云- 制品】消息,可查看制品高危安全漏洞通知消息内容,消息分为制品上传后扫描的高危安全漏洞通知和漏洞数据库更新产生的新增高危安全漏洞通知两种。
点击消息内容的制品名称,跳转到该制品文件的制品安全查看页面。
设置制品仓库的高危安全漏洞消息通知策略
制品仓库管理员在编辑制品仓库页面,可设置安全通知的策略,分为实时通知、每日通知和不通知三种。
实时通知指系统扫描到该制品仓库中的制品存在高危安全漏洞时,实时发送消息到仓库管理员和制品上传人员。包括制品上传到制品仓库和漏洞数据库更新触发扫描两种情况。
每日通知指系统汇总该制品仓库中所有制品新增的高危安全漏洞信息,每日发送一次消息到仓库管理员和制品上传人员。
不通知指系统扫描到制品存在高危安全漏洞时,不发送消息。需要仓库管理员和开发人员通过前述查看制品仓库安全和制品安全的方式进行制品安全信息查看。
设置制品安全通知方式
项目管理员在项目设置-消息-通知设置- 制品中心,选择制品安全相关通知是否采用邮件通知或钉钉机器人通知。如果不启动邮件或钉钉机器人通知,则系统只发送制品安全相关通知的站内消息,项目相关人员到研发云平台页面的消息中心查看相关制品安全通知消息。
- docker镜像创建标签
docker镜像创建标签
当项目开发人员需对制品库中已有的docker镜像重命名镜像标签,可使用docker镜像创建标签功能。
- 在制品仓库树状图中选择要创建标签的docker镜像,选中已有的标签,在页面右上方点击“创建标签”按钮
- 在弹出的创建标签对话框,选择目标仓库,填写标签名称,点击“确定”按钮
- 查看制品仓库树状图,在目标制品仓库存在上一步创建的docker镜像标签版本。
- 制品晋级
- docker镜像晋级
- 指定docker镜像晋级
- docker镜像批量晋级
- maven、generic制品晋级
- 晋级记录查看
- docker镜像晋级
制品晋级
当开发快照snapshot仓库里面的制品测试验证完成后,可通过制品晋级将制品复制或移动到release仓库,实现一次构建多个环境部署。
使用前提:复制晋级时操作人员至少具有源snapshot仓库的只读人员权限及目标release仓库的开发人员(读写)权限。移动晋级时操作人员至少具有源snapshot仓库和目标release仓库的开发人员(读写)权限。
docker镜像晋级
指定docker镜像晋级
开发人员登录研发云,进入项目视图——制品——项目制品库。右侧以树状结构展示该开发人员有权限读写的项目制品仓库。选择snapshot docker制品仓库下的指定docker镜像的tag版本目录,点击页面右上角的晋级,在弹出的对话框中,选择晋级制品库(目标release仓库),选择晋级方式,可选设置晋级的目标版本,点击确认。该docker镜像将按用户设置的晋级方式及版本移动或复制到目标release仓库。
docker镜像批量晋级
开发人员登录研发云,进入项目视图——制品——项目制品库。右侧以树状结构展示该开发人员有权限读写的项目制品仓库。选择snapshot docker制品仓库,右侧页面选择制品晋级tab,展示该snapshot docker仓库下的镜像名称、镜像版本及晋级状态信息。勾选未晋级的制品(可多选),点击确认晋级。
在弹出的对话框中,选择晋级制品库(目标release仓库),选择晋级方式,可选设置晋级的目标版本,点击确认。选择的docker镜像将按用户设置的晋级方式及版本批量移动或复制到目标release仓库。
maven、generic制品晋级
maven和generic制品以一次流水线构建为单位进行该次构建上传制品的批量晋级。
开发人员登录研发云,进入项目视图——制品——项目制品库。右侧以树状结构展示该开发人员有权限读写的项目制品仓库。选择snapshot maven/generic制品仓库,右侧页面选择制品晋级tab,展示该snapshot仓库下流水线构建上传制品的流水线名称和构建任务ID及晋级状态。点击右侧制品晋级操作按钮。
在弹出的对话框中,选择目标release仓库,选择移动或复制晋级,实现该次流水线构建所上传制品的批量晋级。
晋级记录查看
开发人员登录研发云,进入项目视图——制品——项目制品库。右侧以树状结构展示该开发人员有权限读写的项目制品仓库。选择snapshot maven/generic/docker制品仓库,右侧页面选择制品晋级tab,点击晋级记录,可查看该snapshot仓库的所有晋级操作记录。可以根据晋级目标制品库、晋级时间、晋级方式等查询晋级记录。
选择一条流水线名称,点击查看所含制品,可查看晋级的具体制品文件。
- 制品全生命周期溯源
- 查看某个制品全生命周期数据
- 通过制品仓库查询指定制品的全生命周期数据
制品全生命周期溯源
制品中心提供制品的整个生产过程的跟踪溯源能力,用户可查看与制品相关联的需求、代码、构建、质量、部署等全生命周期的关键数据。通过全生命周期数据的关联实现制品的质量控制与准确及时交付,满足项目组统一视图管理制品的开发、构建、质量及上线的需求。
使用前提:制品是通过研发云流水线构建上传,操作人员具有制品仓库的读取权限。
查看某个制品全生命周期数据
操作人员登录研发云,进入项目视图——制品——项目制品库。右侧以树状结构展示该开发人员有权限读取的项目制品仓库。选择某个制品(docker镜像选择到tag目录),点击制品全生命周期菜单。
点击拓扑图,可查看制品从需求到开发代码到代码安全扫描、流水线编译构建到部署的全生命过程,每个阶段展示该过程的结果信息。
点击其中的某个阶段,则展示该阶段的详细信息。
点击需求阶段,展示制品的需求来源详情(包括工作项编号、工作项标题、类型、完成状态、被指派人、更新时间等)。点击工作项编号,可跳转到研发云工作项查看工作项详情。
点击代码阶段,展示生成制品的源代码信息,包括仓库、分支、commit ID及commit标题、提交人和提交时间等。如果具有代码仓库的访问权限,点击commitID,跳转到代码仓库对应分支的对应提交的详情页面。
点击安全阶段,展示代码安全扫描(包括fortify和sonar扫描)的结果信息,如果具有代码访问权限,可跳转查看扫描报告详情。
点击流水线,展示构建制品的流水线信息,点击流水线名称,若具有流水线查看权限,则可跳转显示流水线构建记录详情。
点击部署,可查看制品关联的部署任务详情及部署任务结果。
通过制品仓库查询指定制品的全生命周期数据
操作人员登录研发云,进入项目视图——制品——项目制品库。右侧以树状结构展示该开发人员有权限读取的项目制品仓库。选择某个制品仓库,在右侧页面选择全生命周期tab。输入或选择制品名称及制品版本信息,查询该制品版本的全生命周期数据。
- 制品同步设置与查看——docker镜像同步
- docker镜像远程同步仓库设置
- docker镜像手工同步
- docker镜像同步结果查看及重新同步
制品同步设置与查看——docker镜像同步
制品中心docker镜像若需部署到IT上云环境(例如CCSE集群),需先设置制品中心docker制品仓库同步到云网集群镜像仓库(harbor仓库),再通过研发云部署中心进行CD部署。
制品中心docker镜像也可同步到公网harbor仓库,前提是公网harbor仓库服务器放通研发云访问。
研发云docker制品仓库管理员配置本仓库需同步的目标harbor仓库,新上传的docker镜像会自动同步到目标仓库。配置同步目标仓库前已有的docker镜像,开发人员可手工同步推送到远端目标仓库。
docker镜像远程同步仓库设置
项目本地制品仓库管理员登录研发云,进入“项目设置”——“制品”,在需要同步的docker镜像仓库列表中,点击设置同步仓库的操作按钮。
在弹出的页面中,勾选需要同步的目标harbor仓库,点击确定,完成同步远程目标仓库设置。
用户勾选同步的目标harbor仓库时,还可设置制品元数据,实现筛选指定元数据的docker镜像同步到远程目标仓库。满足用户按需推送指定元数据的制品到不同的远程目标仓库,从而实现不同环境部署的需求。例如将dev分支构建的docker镜像同步到测试harbor仓库,部署到测试环境;将master分支构建的docker镜像同步到生产harbor仓库,部署到生产环境。
如果在弹出的页面中,无可选的目标harbor仓库,则需要联系企业资源管理员配置并授权项目使用对应的集群及集群的镜像仓库(harbor仓库)。详细操作指引参考”研发云帮助文档- 资源中心-集群管理“配置CCSE harbor镜像仓库信息,以及参考”研发云帮助文档-资源中心-制品库集群管理“配置独立的harbor仓库信息。
docker镜像制品仓库同步设置完成后,只要上传docker镜像,研发云平台自动推送满足条件的docker镜像到所设置的远程目标harbor仓库。
docker镜像手工同步
开发人员手工同步docker镜像制品的前提是仓库管理员已设置该镜像仓库的远程同步目标harbor仓库。
项目开发人员登录研发云,进入项目视图,进入“制品”-“项目制品库”,选择要同步的docker镜像仓库,点击页面的“制品同步”菜单。
页面展示该docker镜像仓库中已有的镜像及版本列表,勾选需要同步的镜像版本,点击“操作”列的同步操作,将所选的docker镜像同步到远程目标harbor仓库。开发人员可以勾选多个镜像及版本,点击“一键同步”,实现docker镜像批量同步到远程目标仓库。
开发人员可以输入制品名称关键字、制品版本及制品创建时间范围,筛选指定条件的制品进行同步。
开发人员可以点击"查看远程目标",如果没有远程仓库列表,需仓库管理员先设置要同步的目标云网集群镜像仓库。
制品同步完成后,可点击“查看同步记录”,查看docker镜像的同步记录。
docker镜像同步结果查看及重新同步
项目开发人员有2种方式查看docker镜像仓库的制品同步结果。
- 方式一
项目开发人员登录研发云,进入项目视图,进入“制品”——“制品同步记录”菜单,可查看docker镜像的同步结果。结果以列表形式展示,包括镜像所在仓库、镜像名称、版本、目标仓库、同步状态、同步时间及任务创建时间等信息。
对于同步失败的镜像,可点击“重新同步”按钮进行再次同步。对于正在同步的镜像,可点击”停止同步“按钮,中止正在同步的任务。
项目开发人员可输入项目制品库、制品名称、制品版本、同步状态、同步时间进行查询,点击重置按钮可以清空查询条件。
点击查看日志,可查看同步过程的日志信息。
- 方式二
项目开发人员登录研发云,进入项目视图,进入“制品”——“项目制品库”菜单,选择docker镜像仓库,点击某个docker镜像版本目录。在右侧基本信息页面的下方,制品同步的区域展示该镜像的同步状态。包括远程目标镜像仓库名称、地址、同步时间、同步状态、同步日志。
对于失败状态,点击操作重新同步按钮可再次触发同步。对于正在同步的镜像,可点击”停止同步“按钮,中止正在同步的任务。
点击查看日志,可查看同步过程的日志信息。
- 制品同步设置与查看——文件同步
- Generic仓库远程同步仓库设置
- Generic仓库制品手工同步
- 文件同步结果查看及重新同步
制品同步设置与查看——文件同步
制品中心Generic仓库可同步到远端文件服务器,只要远端文件服务器开放研发云平台ssh或rsync方式访问。远端文件服务器需要企业资源管理员在企业资源管理后台设置为文件仓库。
研发云Generic制品仓库管理员配仓库需同步的目标文件仓库,新上传的文件将自动同步到目标文件仓库。配置同步仓库前已有的文件,需要开发人员手工操作进行同步。
Generic仓库远程同步仓库设置
项目本地制品仓库管理员登录研发云,进入“项目设置”——“制品”,在需要同步的Generic仓库列表中,点击”制品库同步设置“操作按钮。
在弹出的页面中,勾选需要同步的目标文件仓库,点击确定,完成同步远程目标仓库设置。
如果在弹出的页面中,无可选的目标文件仓库,需要联系企业资源管理员配置并授权项目使用对应的目标文件仓库。详细操作指引参考”研发云帮助文档-资源中心- 制品库集群管理“。
Generic制品仓库同步设置完成后,只要上传制品,研发云平台自动推送到所设置的远程目标仓库。
Generic仓库制品手工同步
开发人员手工同步Generic制品的前提是仓库管理员已设置该Generic仓库的远程目标文件仓库。
项目开发人员登录研发云,进入项目视图,进入“制品”-“项目制品库”,选择要同步的Generic仓库,点击页面的“制品同步”菜单。
页面展示该Generic仓库中已有的文件列表,勾选需要同步的文件,点击“操作”列的同步操作,将所选的文件同步到远程文件仓库。开发人员可以勾选多个文件,点击“一键同步”,实现文件批量同步到远程目标仓库。
开发人员可以输入制品名称关键字、创建时间,筛选指定条件的制品进行同步。
开发人员可以点击"查看远程目标仓库",如果没有远程仓库列表,需仓库管理员先配置同步的远程目标仓库。
制品同步完成后,可点击“查看同步记录”,选择Generic类型查看同步记录。
文件同步结果查看及重新同步
项目开发人员有2种方式查看文件制品同步结果。
- 方式一
项目开发人员登录研发云,进入项目视图,进入“制品”——“制品同步记录”菜单,选择Generic,可查看文件制品的同步结果。结果以列表形式展示,包括制品所在仓库、制品名称、路径、远程仓库地址、同步状态、同步时间及任务创建时间等信息。
对于同步失败的制品,可点击“重新同步”按钮进行再次同步。对于正在同步的制品,可点击”停止同步“按钮,中止正在同步的任务。
项目开发人员可输入项目制品库、制品名称、制品路径、同步状态、同步时间进行查询,点击重置按钮可以清空查询条件。
点击查看日志,可查看同步过程的日志信息。
- 方式二
项目开发人员登录研发云,进入项目视图,进入“制品”——“项目制品库”菜单,选择Generic仓库,选择文件。在右侧基本信息页面的下方,制品同步的区域展示该文件的同步状态。包括远程仓库地址、同步时间、同步状态、同步日志。
对于失败状态,点击”重新同步“按钮可再次触发同步。对于正在同步的文件,可点击”停止同步“按钮,中止正在同步的任务。
点击查看日志,可查看同步过程的日志信息。
- 制品手动清理与自动清理
- 制品手动清理
- 制品自动清理
制品手动清理与自动清理
制品手动清理
项目开发人员如需对项目本地制品库中的制品进行批量清理,可以使用制品手动清理功能。
开发人员登录研发云,进入项目视图,从左侧菜单栏选择“制品”,选择“项目制品库”。右侧以树状结构展示该开发人员有权限查看的项目制品仓库。选择某个可以读写操作的制品仓库,在右侧点击制品清理菜单。下方展示该仓库制品的目录树视图,可在树状目录中批量选择目录或文件,点击确认清理。
在弹出的“执行手动清理”对话框中,检查确认要清理的制品文件名称及所在路径,点击确认清理,系统删除所确认清理的制品目录或文件。
制品自动清理
项目本地制品仓库管理员如需定期清理制品仓库中的备份文件,可使用制品自动清理功能。
项目本地制品仓库管理员登录研发云,进入“项目设置”——“制品”,在本地制品仓库列表中选择要进行自动清理设置的仓库,点击右侧的批量清理按钮。
在弹出的页面点击“新增自动清理策略”。
在弹出的页面中选择清理的路径,选择清理的制品创建时间范围或要保留的制品版本个数,可选输入要清理的制品名称关键字或不包含的关键字,选择自动清理的执行时间。点击预览制品。
在弹出的对话框中检查确认当前要清理的制品是否符合设置的自动清理策略。如果不符合,可以关闭预览制品对话框修改自动清理的条件设置。
关闭预览制品对话框后,选择确认,完成自动清理策略设置。
如果项目本地制品仓库管理员需取消自动清理策略设置,可在自动清理策略列表中选择对应策略,点击删除按钮,在弹出的对话框中确定删除此自动清理策略。
- 概述
- 流水线的定义
- 流水线的权限管理
- 使用流水线前的准备
- 确认项目代码仓库已设置
- 确认项目制品仓库已设置
概述
流水线的定义
在研发云开发体系中,持续集成和持续交付是非常重要的一环,研发云流水线如同工业流水线中的传送带,它为持续集成和持续交付任务提供流程控制脚本。
流水线功能模块提供了流水线的创建、运行及管理功能,通过流水线为项目提供持续构建,以及相应的自动化测试、部署服务,即提供持续集成(CI)、持续交付(CD)服务。
流水线与其上下游,也就是代码中心和制品中心的结合是十分紧密的。流水线从代码中心获取项目源码并反过来为代码中心提供评审验证打分等功能;同时,流水线从制品中心下载项目所需的依赖包,并将编译打包后生成的制品推送到制品中心。
流水线的权限管理
流水线的使用者是负责持续集成工作的开发人员、运维人员等。
在使用流水线前,项目团队需在研发云平台上创建流水线,仅项目负责人或项目管理员拥有创建流水线的权限。
流水线的使用者可分为流水线管理员和流水线普通成员两种角色,其中项目负责人或项目管理员创建流水线完成后自动成为该流水线的管理员。两种角色的权限如下:
流水线管理员
- 流水线权限管理
- 修改流水线配置
- 执行流水线
- 查看流水线执行结果
- 删除流水线
流水线普通成员
-
执行流水线
-
查看流水线执行结果
使用流水线前的准备
确认项目代码仓库已设置
流水线需要从代码中心获取项目源码进行处理,因此需要先确定项目代码仓库及分支是否已配置好。项目代码仓库的配置,请参考代码中心相关文档。
从项目工作区进入项目视图,从左侧菜单栏选择代码菜单,再选择代码仓库。右侧显示系统已经创建的代码仓库及仓库分支。
确认项目制品仓库已设置
流水线需要从制品中心制品仓库中下载项目所需的依赖包,并将编译打包后生成的制品推送到制品中心,因此需要先确定项目制品仓库是否已配置好。项目制品仓库的配置,请参考制品中心相关文档。
从项目工作区进入项目视图,从左侧菜单栏选择制品菜单,再选择项目制品库。右侧显示系统已经创建的项目制品库。
- 流水线的创建和配置
- 创建流水线
- 模板选择
- 流水线基础信息配置
- 流水线任务步骤配置
- Java(Maven或Gradle)流水线配置
- NodeJS流水线配置
- Go流水线配置
- Python流水线配置
- C流水线配置
- Ruby流水线配置
- Android流水线配置
- .NET流水线配置
- 流水线触发规则配置
- 流水线权限管理
- 流水线发布
- 查看/修改流水线配置
- 删除流水线
- 创建流水线
流水线的创建和配置
创建流水线
仅项目负责人/项目管理员有权创建流水线。
项目负责人/项目管理员登录研发云,点击“项目设置”——“流水线”——“流水线”,点击“新建流水线”。
模板选择
新建一条流水线,可以通过使用模板来快速建好;若没有合适的模板,可选择“自定义流水线”。
- 自定义流水线
用户自行配置流水线的流程步骤、触发规则等。
- 项目模板
(1)可以使用项目/父项目下创建的已发布的流水线模板。
(2)点击【新建模板】,可即刻创建当前项目下的流水线模板。可参照 创建流水线模板的指引。
- 各技术栈模板
(1)启用单分支评审流程的流水线模板
① 代码提交事件将触发流水线的执行,为代码评审验证打分提供判断依据。
② 用户不可增删流程步骤。
(2)启用多分支评审流程的流水线模板
① 合并请求将触发流水线的执行,为合并请求的评审人员提供判断依据。
② 用户不可增删流程步骤。
(3)不启用代码评审流程的流水线模板
提供推荐流程步骤的配置,用户可自行增删流程的步骤。
流水线基础信息配置
在新建流水线页面进行配置,选择流水线需要处理的代码仓库、需要处理的分支、项目使用的开发语言等。
其中:
--流水线名称(必填) :即将创建的本条流水线的名称,注意流水线的命名规范。流水线名仅允许英文小写字母(a-z)、数字(0-9)、中划线(-),且第一个字符仅允许使用字母。
- -代码仓库(必填) :本条流水线的持续集成步骤将要处理的代码仓库。该参数为下拉选择,如下拉菜单中为空,则需要确认项目代码仓库是否已创建,具体参见 ”流水线——概述 “ 相关描述。
-- 分支(必填) :本条流水线的持续集成步骤将要处理的代码仓库的具体分支。该参数为下拉选择,如下拉菜单中为空,则需要确认项目代码仓库的分支是否已创建,具体参见 “流水线——概述 ” 相关描述。
--流水线执行通知(必填) :将本条流水线的执行结果通知给特定人群(默认通知对象为流水线管理员),通知方式在”项目设置“—”消息“中配置,可支持邮件、钉钉机器人两种通知方式。
-- 技术框架(必填) :本条流水线处理的项目使用的开发语言,根据选择的语言不同,后续需要配置的流水线模板也不同。该参数为下拉选择。流水线支持的开发语言(技术栈)包括:
- Java(Maven/Gradle)
- Go
- Python
- NodeJS
- C
- Ruby
- Android
- .NET
- Scala
- 其他
点击下一步,进行流水线持续集成步骤配置。
流水线任务步骤配置
点击请选择步骤
后,可添加需要的步骤,并进行步骤详细信息的填写。
Java(Maven或Gradle)流水线配置
1)Maven构建参数配置
点击页面左侧Maven构建
步骤,右侧会显示该步骤的参数配置页面。
主要配置用于执行Maven构建指令(如mvn compile、mvn package和mvn deploy等)的步骤。
其中:
-
JDK版本(必填) :Java编译环境的版本,支持8和11。
-
构建模块列表(必填) :构建模块列表即项目需要进行构建的子模块列表。构建模块列表需根据需要填入1到多个模块信息。若项目中有多个子模块,但并不需要全部进行编译构建,可以只填入需要构建的模块列表。
点击“新增构建模块”将弹出新增构建模块界面。构建模块的核心参数是“ 构建路径 ”和“ 编译指令
”,“编译指令”在“构建路径”下执行,根目录指的是.git
文件夹所在的目录
其中:
-
构建模块名(必填) :需进行构建的子模块名称。
-
构建路径 :执行构建指令的路径,通常即为pom.xml文件所在路径。
-
编译指令 :即需执行的编译构建指令。点击?图标,可查看编译指令参数说明。如还需指定其他参数,可在此处填入。
点击“确定”保存新建构建模块信息,如需配置多个构建模块,则重复上面的“新增构建模块”步骤。
依赖库配置
如果Maven项目中有依赖需要从私库下载,则需要在此选择对应的依赖库。
依赖包配置
选择"使用缓存"后,每次构建时,会把下载依赖包缓存起来,以后构建无需重复拉取,可有效提高构建速度。
2)Maven的SonarQube扫描参数配置
SonarQube扫描
步骤的目的在于使用扫描工具对代码进行质量扫描,并在安全中心生成质量报告。
点击页面左侧SonarQube扫描
步骤中的编辑图标,右侧会显示该步骤的参数配置页面。
扫描区分构建工具,如果需要对Maven项目进行扫描,则需要在“构建工具”中选择“Maven”项。
Maven的扫描依赖maven的构建,所以扫描任务结构和maven构建几乎一致。
3)Maven的Fortify扫描参数配置
Foritfy扫描
步骤的目的在于使用扫描工具对代码进行质量扫描,并在安全中心生成安全报告。相比于SonarQube扫描
来说,Fortify扫描
更加深入,而SonarQube扫描
更加轻量,两者采用的扫描规则是不同的。
点击页面左侧Foritfy扫描
步骤中的编辑图标,右侧会显示该步骤的参数配置页面。
和SonarQube扫描
类似,Maven的Fortify扫描
依赖maven的构建,所以扫描任务结构和maven构建几乎一致。
4)Gradle构建参数配置
点击页面左侧Gradle构建
步骤图标,右侧会显示该步骤的参数配置页面。
主要配置用于执行Gradle构建指令(如gradlew build
等)的步骤。
其中:
-
Gradle版本(必填) :Gradle编译环境的版本,支持Gradle6-jdk8/jdk11和Gradle7-jdk8/jdk11,并且支持自定义编译环境。
-
构建模块列表(必填) :构建模块列表即项目需要进行构建的子模块列表。构建模块列表需根据需要填入1到多个模块信息。若项目中有多个子模块,但并不需要全部进行编译构建,可以只填入需要构建的模块列表。
点击“新增构建模块”将弹出新增构建模块界面。构建模块的核心参数是“ 构建路径 ”和“ 编译指令
”,“编译指令”在“构建路径”下执行,根目录指的是.git
文件夹所在的目录
其中:
-
构建模块名(必填) :需进行构建的子模块名称。
-
构建路径 :执行构建指令的路径,通常即为build.gradle文件所在路径。
-
编译指令 :即需执行的编译构建指令。点击?图标,可查看编译指令参数说明。如还需指定其他参数,可在此处填入。
点击“确定”保存新建构建模块信息,如需配置多个构建模块,则重复上面的“新增构建模块”步骤。
依赖库配置
如果Gradle项目中有依赖需要从私库下载,则需要在此选择对应的依赖库。
依赖包配置
选择"使用缓存"后,每次构建时,会把下载依赖包缓存起来,以后构建无需重复拉取,可有效提高构建速度。
5)Gradle的SonarQube扫描参数配置
点击页面左侧SonarQube扫描
步骤图标,右侧会显示该步骤的参数配置页面。
SonarQube扫描
步骤的目的在于使用扫描工具对代码进行质量扫描,并在安全中心生成质量报告。扫描区分构建工具,如果需要对Maven项目进行扫描,则需要在“构建工具”中选择“Gradle”项。
Gradle的扫描配置与Gradle构建类似,参照Gradle构建模块填写。
6)制品上传参数配置
点击页面左侧制品上传的步骤图标,右侧会显示制品上传步骤的参数配置页面。
其中:
-
Docker制品库 :制品中心存贮Docker制品的仓库名,制作好的Docker镜像制品将上传至该仓库中。该参数为下拉选择,如下拉菜单中为空,则需要确认制品仓库是否已经建立,具体参见“ 流水线——概述 ”相关描述。
-
Generic制品库 :制品中心存贮普通文件制品的仓库名,文件制品将上传至该仓库中。该参数为下拉选择,如下拉菜单中为空,则需要确认制品仓库是否已经建立,具体参见“ 流水线——概述 ”相关描述。
-
制品列表(必填) :需上传至制品中心的制品列表。制品列表根据需要填入1到多个制品信息。
新增制品:
点击“新增制品”将弹出制品配置界面,制品类型支持Docker制品、Generic制品(普通文件):
Docker制品配置说明如下:
- 制品类型(必填) :该参数为下拉选择,此处选择“Docker”
- 镜像名(必填) :将要制作的Docker镜像制品的镜像名称。流水线将自动读取项目代码库的代码提交tag(如无tag,则取commitID的前6位),作为Docker制品的tag标签,与此处填入的镜像名组合成格式为“镜像名:tag”的名称字段,作为Docker镜像制品的名称。同时还会为此Docker镜像制品赋予格式为“镜像名:latest”的最新版本标签,同时上传“镜像名:tag”、“镜像名:latest”两份Docker制品至制品中心。
- dockerfile目录(必填) :制作Docker镜像制品所需的dockerfile文件所在路径,流水线将在此目录下执行docker build。
- 初始化指令 :docker build制作镜像前执行的初始化操作指令,例如可在这里填入拷贝相关文件至dockerfile文件目录。建议为空,尽量不要使用初始化指令,而由项目组确保制作镜像所需的前置工作已经完成。
Generic制品配置说明如下:
- 制品类型(必填) :该参数为下拉选择,此处选择“Generic”
- 制品路径(必填) :Generic制品库中的下级目录。流水线将在Generic制品库中创建下级目录,并将制品文件上传至此下级目录中,避免所有制品文件都存放在制品库根目录。
- 上传文件目录(必填) :Generic制品存放的路径。流水线将在此目录下查找制品文件,将其上传至制品库。
- 上传文件(必填) :要上传的制品文件名,多个文件之间用“,”分隔,不要有多余的空格。
- 初始化指令 :上传文件制品前执行的初始化操作指令,例如可在这里填入拷贝相关文件至上传文件目录。建议为空,尽量不要使用初始化指令,而由项目组确保上传制品所需的前置工作已经完成。
NodeJS流水线配置
1)Nodejs构建参数配置
点击页面左侧Nodejs构建的步骤图标,右侧会显示Nodejs构建步骤的参数配置页面。
其中:
-
Nodejs版本(必填) :Nodejs编译环境的版本,支持12.18.4,对应Nodejs语言官方发布的12.18.4版本,将通过node:12.18.4 docker镜像生成容器提供编译环境。
-
包管理工具(必填) :下拉选项包含npm 与yarn,按实际需求选取即可。
-
构建模块列表(必填) :构建模块列表即项目需要进行构建的子模块列表。构建模块列表需根据需要填入1到多个模块信息。若项目中有多个子模块,但并不需要全部进行编译构建,可以只填入需要构建的模块列表。
点击“新增构建模块”将弹出新增构建模块界面:
其中:
- 构建模块名(必填) :需进行构建的子模块名称。
- 构建路径(必填) :执行构建指令的路径,通常即为package.json文件所在路径。
- 编译指令(必填) :即需执行的编译构建指令,默认为 npm install;npm run build 。
点击?图标,可查看编译指令参数说明。如还需指定其他参数,可在此处填入。
点击“确定”保存此构建模块信息,如需配置多个构建模块,则重复上面的“新增构建模块”步骤。
2)SonarQube扫描参数配置
点击页面左侧SonarQube扫描的步骤图标,右侧会显示SonarQube扫描步骤的参数配置页面。
其中:
-
源码路径(必填) :需进行Sonar代码质量扫描的代码文件所在路径,通常为源码根目录
-
Sonar拓展参数 :点击“扩展配置”,将出现“Sonar拓展参数”配置框。如果需要指定Sonar扫描的拓展参数,可在此处填入。例:如扫描需要跳过名为test的源码文件或者目录,不对其进行扫描,可填入 :
-Dsonar.exclusions="/*_test.go,/test/**"
3)Fortify扫描参数配置
Foritfy扫描
步骤的目的在于使用扫描工具对代码进行质量扫描,并在安全中心生成安全报告。相比于SonarQube扫描
来说,Fortify扫描
更加深入,而SonarQube扫描
更加轻量,两者采用的扫描规则是不同的。
点击页面左侧Foritfy扫描
的步骤图标,右侧会显示该步骤的参数配置页面。
NodeJs的Fortify扫描
任务的参数配置与Nodejs构建
较为类似。
点击新建扫描模块
将弹出扫描模块配置界面:
其中:
-
扫描模块名(必填) :用于标识扫描模块。仅允许英文小写字母(a-z)、数字(0-9)、中划线(-),且第一个字符仅允许使用字母。
-
扫描路径(必填) :package.json文件所在目录,默认为
/
(即根目录)
4)制品上传参数配置:
同Java(Maven或Gradle)流水线配置 的“制品上传参数配置 ”。
Go流水线配置
1)Go构建参数配置
点击页面左侧Go构建的步骤图标,右侧会显示Go构建步骤的参数配置页面,
其中:
-
Go版本(必填) :Go编译环境的版本,支持1.11-1.17多个版本,分别对应Go语言官方(golang.org)发布的1.11-1.17版本,默认值为1.14,将通过golang:1.14 docker镜像生成容器提供编译环境。
-
初始化指令 :Go项目编译前需额外提前执行的编译初始化指令,如export GO111MODULE=on(启用GoModule包管理模式)、go mod init(若go.mod文件不存在,则初始化生成go.mod文件)等,多个指令之间用 ; 连接。初始化指令需根据项目组需要自行判断填写,并保证其执行的正确性。例如,若项目只有一个简单的Helloworld,并无用到其他依赖包,执行export GO111MODULE=on后可能导致编译失败,需由项目组自行解决。
-
执行指令路径 :即初始化指令执行路径,通常为项目根目录或go.mod文件所在路径。
-
构建模块列表(必填) :构建模块列表即项目需要进行构建的子模块列表。构建模块列表需根据需要填入1到多个模块信息。若项目中有多个子模块,但并不需要全部进行编译构建,可以只填入需要构建的模块列表。
新增构建模块:
点击“新增构建模块”将弹出模块配置界面:
其中:
- 构建模块名(必填) :需进行构建的子模块名称。
- 构建路径 :执行构建指令的路径,通常即为main.go文件所在路径。
- 编译指令 :即需执行的编译构建指令,默认为 go build -tags netgo 。点击?图标,可查看编译指令参数说明。为保障编译生成的文件可在alpine、scratch等镜像中正常运行,建议使用静态编译。流水线后台已设置export CGO_ENABLED=0,如还需指定其他参数,可在此处填入。如默认的-tags netgo参数表示编译时将使用内建net包,不使用系统net库,以保障使用了net包的项目,编译后生成的二进制文件能在alpine镜像中正常执行。
2)SonarQube扫描参数配置
点击页面左侧SonarQube扫描的步骤图标,右侧会显示SonarQube扫描步骤的参数配置页面。
其中:
-
源码路径(必填) :需进行Sonar代码质量扫描的代码文件所在路径,通常为源码根目录
-
Sonar拓展参数 :点击“更多配置”,将出现“Sonar拓展参数”配置框。如果需要指定Sonar扫描的拓展参数,可在此处填入。如扫描需要跳过名为test的源码文件或者目录,不对其进行扫描,可填入 :
-Dsonar.exclusions="/*_test.go,/test/**"
3)Fortify扫描参数配置
Foritfy扫描
步骤的目的在于使用扫描工具对代码进行质量扫描,并在安全中心生成安全报告。相比于SonarQube扫描
来说,Fortify扫描
更加深入,而SonarQube扫描
更加轻量,两者采用的扫描规则是不同的。
点击页面左侧Foritfy扫描
的步骤图标,右侧会显示该步骤的参数配置页面。
Go语言的Fortify扫描
任务的参数配置与Go构建
较为类似。
点击新建扫描模块
将弹出扫描模块配置界面:
其中:
-
扫描模块名(必填) :用于标识扫描模块。仅允许英文小写字母(a-z)、数字(0-9)、中划线(-),且第一个字符仅允许使用字母。
-
扫描路径(必填) :执行构建指令的路径,即main.go文件所在路径,默认为
/
(即根目录)
4) 制品上传参数配置
同Java(Maven或Gradle)流水线配置 的“制品上传参数配置 ”。
Python流水线配置
1) SonarQube扫描参数配置
点击页面左侧SonarQube扫描的步骤图标,右侧会显示SonarQube扫描步骤的参数配置页面,
其中:
-
源码路径(必填) :需进行Sonar代码质量扫描的代码文件所在路径,通常为源码根目录
-
Sonar拓展参数 :点击“更多配置”,将出现“Sonar拓展参数”配置框。如果需要指定Sonar扫描的拓展参数,可在此处填入。如扫描需要跳过名为test的源码文件或者目录,不对其进行扫描,可填入 :
-Dsonar.exclusions="/*_test.go,/test/**"
2) Python执行
Python执行
步骤仅在自定义Python流水线中存在,用于对在提供的Python镜像内执行对应的指令。
-
python镜像(必填) :该参数为下拉选择,此处选择“3.8-slim-buster”
-
requirements路径 :requirements.txt所在路径。
-
执行模块列表(必填) :执行模块列表
新增模块:
点击“新增模块”将弹出模块配置界面
模块配置说明如下:
- 指令执行路径(必填) :指令执行路径-相对于源码库的路径,默认为/(即根目录)
- 执行指令(必填) :填写项目组需要执行的指令。
3) Python的Fortify扫描参数配置
Foritfy扫描
步骤的目的在于使用扫描工具对代码进行质量扫描,并在安全中心生成安全报告。相比于SonarQube扫描
来说,Fortify扫描
更加深入,而SonarQube扫描
更加轻量,两者采用的扫描规则是不同的。
点击页面左侧Foritfy扫描
的步骤图标,右侧会显示该步骤的参数配置页面。
Python
的Fortify扫描
任务的参数配置与Python执行
较为类似。
点击新建扫描模块
将弹出扫描模块配置界面:
其中:
-
扫描模块名(必填) :用于标识扫描模块。仅允许英文小写字母(a-z)、数字(0-9)、中划线(-),且第一个字符仅允许使用字母。
-
扫描路径(必填) :构建模块源代码路径,默认为
/
(即根目录)
4) 制品上传参数配置
同Java(Maven或Gradle)流水线配置 的“制品上传参数配置 ”。
C流水线配置
C流水线 包括C语言构建和制品上传,fortify扫描三个步骤
1) C语言构建
2) 制品上传
3) fortify扫描
详细参考[C-fortify](详细参考C-fortify )
Ruby流水线配置
流水线主要包括代码质量扫描和制品上传两个步骤,操作方式与上述流水线类似。
Android流水线配置
1)Android构建参数配置
点击页面左侧Android构建
的步骤图标,右侧会显示Android构建
步骤的参数配置页面。
其中:
-
构建环境容器(必填) :
Anroid
编译环境的容器镜像,支持Android-build-box:latest以及自定义镜像。 -
Gradle(必填) :选择Gradle版本。
-
JDK(必填) :选择JDK版本。
-
构建路径(必填) :需要在什么路径中执行构建命令。默认为
/
(根目录) -
构建命令 :Android构建指令,根据项目组需要进行填写。
2)Android的Fortify扫描参数配置
点击页面左侧Fortify扫描
的步骤图标,右侧会显示Fortify扫描
步骤的参数配置页面。
Android的Fortify扫描参数的配置较为简单,填写源码路径
项即可。
3) 制品上传参数配置
同Java(Maven或Gradle)流水线配置 的“制品上传参数配置 ”。
注:流水线支持的技术栈将持续更新
.NET流水线配置
1).NET构建参数配置
点击页面左侧.NET构建
的步骤图标,右侧会显示该步骤的参数配置页面。
主要配置用于执行dotnet构建指令(如dotnet build)的步骤。
其中:
-
.NET版本(必填) :.NET编译环境的版本,目前支持6.0.400。
-
构建模块列表(必填) :构建模块列表即项目需要进行构建的子模块列表。构建模块列表需根据需要填入1到多个模块信息。若项目中有多个子模块,但并不需要全部进行编译构建,可以只填入需要构建的模块列表。
点击“新增构建模块”将弹出新增构建模块界面。构建模块的核心参数是“ 构建路径 ”和“ 编译指令
”,“编译指令”在“构建路径”下执行,根目录指的是.git
文件夹所在的目录
其中:
-
构建模块名(必填) :需进行构建的子模块名称。
-
构建路径 :执行构建指令的路径,通常即为xxx.sln文件或者xxx.csproj文件所在路径。
-
编译指令 :即需执行的编译构建指令。点击?图标,可查看编译指令参数说明。如还需指定其他参数,可在此处填入。
点击“确定”保存新建构建模块信息,如需配置多个构建模块,则重复上面的“新增构建模块”步骤。
依赖库配置
流水线会自动注入NuGet.Config配置文件,配置文件已经设置了使用研发云nuget公共制品库。因此用户如果在项目源码根路径下自定义了NuGet.Config,可能会覆盖掉流水线注入的研发云nuget公共制品库。而流水线无法访问公网,无法通过项目自定义的NuGet.Config中定义的源下载依赖,导致流水线失败。
流水线自动注入的NuGet.Config配置文件内容如下:
如果已经把nuget私有包上传到研发云nuget私有制品库,而当前.NET项目需要使用这个nuget私有包,则需要在此选择对应的私有依赖库。
依赖包配置
选择"使用缓存"后,每次构建时,会把下载依赖包缓存起来,以后构建无需重复拉取,可有效提高构建速度。
2).NET的SonarQube扫描参数配置
SonarQube扫描
步骤的目的在于使用扫描工具对代码进行质量扫描,并在安全中心生成质量报告。
点击页面左侧SonarQube扫描
的步骤图标,右侧会显示该步骤的参数配置页面。
.NET的扫描依赖.NET的构建,所以扫描任务结构和.NET构建类似。最大的区别是构建命令那里会有很多跟sonar扫描相关的参数,如下图所示。
3)制品上传参数配置
同Java(Maven或Gradle)流水线配置 的“制品上传参数配置 ”。
流水线触发规则配置
任务步骤配置好后,可以设置流水线的触发规则。
流水线支持五种触发(执行)规则:
-
手工触发: 即流水线不会自动执行,当用户需要执行流水线时,需要手工点击流水线的“执行”按钮;
-
Gerrit事件触发: 即由代码库的事件驱动,当代码库发生指定变化时,流水线将自动执行
- 代码提交评审(Pachset Created)触发:当代码库有新的代码提交请求,且此次代码提交需要进行评审打分时,将触发流水线。流水线执行完成后会将执行结果返回代码中心,由代码中心根据执行结果对本次代码提交请求进行评审打分。
- 代码合入(Change Merged)触发:当代码库有需要评审的代码提交请求被审核通过后,完成代码合入时,将触发流水线。
- 代码更新(Ref Updated)触发:当代码库有新的无需评审打分的代码提交请求,完成代码合入时,将触发流水线。
-
定时触发: 即由用户指定流水线的运行时间,当到达指定时间时,流水线将自动执行。
-
合并请求触发: 提交合并请求(目标分支为当前流水线对应的仓库分支)时触发流水线。
-
Tag触发: 代码打Tag时触发流水线。
流水线触发规则配置完成后,即可点击“保存”,完成流水线的创建。
流水线权限管理
流水线权限角色可分为流水线管理员和流水线普通成员两类。项目负责人/项目管理员在创建流水线后,自动成为该流水线的管理员。
流水线管理员拥有对流水线的所有权限,包括:
- 流水线权限管理
- 修改流水线配置
- 执行流水线
- 查看流水线执行结果
- 删除流水线;
流水线普通成员拥有的权限包括:
- 执行流水线
- 查看流水线执行结果
项目负责人/项目管理员在新建流水线时,根据提示进入流水线权限管理页面。或进“项目设置”——“流水线”,点击流水线列表右侧的“权限管理”操作钮进入流水线的权限管理页面。
进入权限管理界面后,可查看流水线当前配置的管理员和普通成员。如需更改权限,点击“修改”
分别勾选1~n个用户,设置为管理员、普通成员,保存更改。
流水线发布
流水线被创建后,需要经过发布才能被看到和被执行。
项目负责人/项目管理员进“项目设置”——“流水线”,点击流水线列表右侧的“发布”操作键完成发布。
查看/修改流水线配置
流水线管理员可修改和查看流水线配置。
登录研发云,进入“流水线”,点击流水线列表右侧的“配置”操作键。
在流水线配置界面可查看/修改流水线的基本信息、流程、触发规则和权限配置。
流水线的配置详细说明,请参阅 “流水线配置 ”相关描述。
对流水线配置完成修改后,点击“保存”保存修改;或点击“保存并执行”在保存修改后立即开始执行该流水线。
删除流水线
拥有流水线管理员权限的项目/子项目负责人或项目/子项目管理员拥有流水线删除权限,项目组其他成员无权删除流水线。
进入“项目设置”——“流水线”,在流水线列表中选择需要删除的流水线,点击右侧”删除“按钮,可删除指定流水线。