组件集成SDP发布手册

更新记录

版本 日期 修改人 修改内容
1.0.0 2021年4月8日 蔺浪(510525) 新建文档
1.0.1 2021年4月9日 黄金民 补充U3dBuildAfterHook.bat功能说明
1.0.2 2021年4月9日 蔺浪(510525) 补充组件解决方案文件(*.sln)确保目录说明

概述

该文内容均以资源中心组件(组件ID:vlab-resourcecenter)为例,阐述组件集成SDP发布实操事宜;注意结合自己的组件进行实操。

克隆仓库

  1. 克隆组件仓库,地址:git@git.sdp.nd:171517/VLabAllProject.git,master分支;
  2. 初始化子模块(自己的组件仓库,例如vlab-resourcecenter)
  3. 切换到Gerrit
    切换到Gerrit

发布分支

  • 例如发布develop分支(保险起见,可基于develop创建一个测试分支feature/devSdpPackTest来进行实操,待验证之后,再合入develop);本文中以发布feature/devSdpPackTest测试分支作为示例进行阐述;

准备发包脚本

  1. 检查/修改解决方案适配SDP;
    进入SDP共享平台,找到自己的组件入口;
    确保解决方案命名与组件“应用名称”一致!且解决方案(*.sln)确保在组件仓库的根目录下!
    修改解决方案适配SDP
  2. 获取组件集成SDP发布脚本.zip,解压到组件根目录(与解决方案同级);
    解压到组件根目录

  3. 修改脚本文件适配自己的组件;

  • U3dBuildBeforeHook.bat
    该脚本在构建Nuget包之前执行,清理根目录下原有的*.nupkg包文件;

  • ComponentName.nuspec
    该文件旨在确保SDP发布流程正常运作,但依据此文件构建的Nuget包并非我们预期的包(此属于SDP系统与组件包名称历史遗留问题,金民提供解释);而依据U3dBuildAfterHook.nuspec文件构建的Nuget包才是我们预期的包;
    注意:适配自己的组件信息,文件名与组件“应用名称”一致!
    例如:资源中心的Nuget包描述文件命名为:vlab-resourcecenter.nuspec
    适配自己的组件信息

  • U3dBuildAfterHook.nuspec
    该文件描述我们需要的Nuget包信息;注意:适配自己的组件信息
    适配自己的组件信息

  • 包文件配置统一说明
    ComponentName.nuspec和U3dBuildAfterHook.nuspec文件中的包文件配置,如下图所示;根据自己的组件的发布资源进行配置;有疑问咨询实操经验同学;
    注意:采用双星花的配置方式意味着将纳入配置目录下的所有文件,则不需要纳入的文件须清理;或者沿用组件中原来的配置方式(大多组件目前采用逐一配置的方式);两种配置方式各有优缺点,组件自行决定,谨此提醒;
    包文件配置统一说明
    组件依赖信息根据自己的组件依赖情况配置(无依赖则忽略该项配置);
    组件依赖信息

  • U3dBuildAfterHook.bat
    该脚本在构建Nuget包之后执行,使用U3dBuildAfterHook.nuspec构建我们需要的Nuget包并提交到Nuget服务器;注意:适配自己的组件信息
    适配自己的组件信息
    这个bat只是提供了在SDP构建完成后,完成组件方自己定制功能的目的,因此可以用组件自己的方式完成组件的发布,特别是组件发布的nuget包的ID和SDP的不一致,有的组件仓库需要发布多个nuget包的情况,注意这个bat是在共享平台的服务端执行,可以通过变量获取SDP传递的版本号等信息

测试标识

  • 为快速识别SDP发布的包是否为当前分支预期的发布结果,可在自己组件中添加特定的测试标识(例如修改dll文件的文件版本号等方式),方便发布后验证包是否正常;
  • 注意提交并推送到远端分支;

推送修改

  • 提交上述修改文件并推送到远程分支
  • 注意确认SDP托管组件仓库上已经同步到上述提交
    确认SDP托管仓库同步

SDP发布

  1. 进入SDP共享平台,找到自己的组件入口;
  2. 发布操作如下图所示:
    发布操作
  3. 发布结果参见界面反馈以及99u组件群通知;发布失败则查阅失败反馈日志,分析原因或者咨询实操经验同学;

验证发布包

  1. 用VS打开任意.net工程,安装组件刚刚发布的测试包(Nd.VLab.ResourceCenter 0.0.0-sdptest0);
  2. 进入工程 ..\packages\ND.VLab.ResourceCenter.0.0.0-sdptest0\ 目录下,自己验证该包中的文件为当前发布分支(远程)上最新提交的代码编译发包后的结果;图示仅作示意(以自己的测试标识方案为准);
    验证发布包
  3. 验证失败则结合文件差异分析或咨询实操经验同学;验证成功则继续;

集成到develop

  • 发布验证正常之后,将测试分支提交的修改合入develop;至此,组件develop分支集成SDP发布实操完成;
  • 测试分支feature/devSdpPackTest若无它用可及时删除以确保仓库整洁;

干系人

干系人 干系
蔺浪 组件集成SDP发布实操及文档编写
黄金民 解决方案备询/问题或者建议受理
蔺浪,黄金民 Gerrit/GitLab仓库备询
蔺浪,黄金民,李成,王永弟 SDP共享平台备询/OA系统备询

相关链接

OA系统
SDP共享平台
SDP仓库门户
Gerrit门户
组件仓库:git@git.sdp.nd:171517/VLabAllProject.git