前言
到达这一步好比临门一脚,意义很大!您的代码被合入 OpenHarmony 平台,这是最后的一道关口,保证合入的是正确的,并且不会对系统造成意外。
一、 安装路线
- 1.避坑指南
- 2.登录 gitee、拉取代码
- 3.在公仓创建 ISSUE
- 4.上库
二、避坑指南
1. 填写 ISSUE 和 PR 按照规范进行
- ISSUE 和 PR 填写不规范会被扣分,甚至不予合入;
2. 一个 ISSUE 与多个 PR 关联
- 一个 ISSUE 主题有多个 PR, 需要全部关联;
- 涉及多个仓,建议用字母顺序的第一个仓建立 ISSUE, 并且按顺序提交 PR;
3. 如果修改的仓特别多,存在编译依赖,而且不能一批上完,有什么要注意的?
- BUILD.gn 和 CMakefile 最后提交,也就是让先提交的代码不参与编译;
4. 被合入之后要不要下载镜像测试一下?
- 上库的人众多,不能保证你修改的代码短期内不会被人修改回去,另外 OpenHarmony 服务器上的编译环境可能与你的环境有差异,有必要下载镜像测试一下。
- CI 日构建镜像链接:
http://ci.openharmony.cn/workbench/cicd/dailybuild/dailylist
5. 功能性代码,只有被测试人员测试通过,并且其他问题不会溯源到你这里,才代表这一笔合入真正完成。
三、 登录 gitee、拉取代码
没有注册请先注册 gitee 账号
1.1 打开 www.gitee.com
官网登录个人账户
1.2 打开 openharmony 网页 https://gitee.com/openharmony
打开仓库页面
1.3 选择要修改的仓库
点击 1 处仓库,在 2 处搜索仓库,输入所要搜索的仓库名,按回车键,点击要进入的仓库。
1.4 从公仓 forked 到私仓
进入所要拉取的仓,点击 forked 将公共仓拷贝 1 份到私仓下。
1.5 查看私仓
回到个人主页,1 处的 watches,会显示已经拷贝的公共仓
1.6 进入私仓,复制代码链接
进入私仓点击 1 处的克隆/下载,选择 2 处的 SSH,点击 3 处的复制。
1.7 在虚拟机家目录新建拉取代码仓的文件夹,例如 fix,进入该文件夹后执行
- 克隆私仓代码到本地
mkdir fix
cd fix
git clone git@gitee.com:XXXXXXX/drivers_framework.git
- 修改这一部分相关代码
后续的修改在这里进行,主要使用比较工具(BeyondCompare)将修改的内容同步到这里,保证新修改的功能是正确的,并且不影响其他功能,就可以上传了。
四、在公仓创建 ISSUE
上库代码必须保证是正确的,就可以进行上库操作。
4.1 在 https://gitee.com/openharmony
找到要修改的公仓
4.2 点击进入在进入的公仓下创建 ISSUE
记住 ISSUE 号,后续 PR(Pull Requests)需要关联。
4.3 描述新建的 ISSUE
选择任务还是需求、缺陷还是安全问题。描述具体的操作,可以是中文也可以是英文,底下为具体的任务描述解决方案。
五、上库
5.1 在本地拉取的代码目录执行下面命令进行上库
在拉取的 fix 文件夹下,再进入下一级文件夹
git status 查看状态确定修改是自己操作修改的文件【红色】
git add . 提交本地当前的变化
git status 查看状态是否已提交本地当前的变化【绿色】
git commit -sm "XXX" 描述修改了什么进行了什么操作使用英文
git push -f origin master 本地强制上传到私仓,把私仓覆盖。
5.2 私仓下创建 PR
- 填写 PR 信息
在 www.gitee.com 私仓,在要提交的私仓下创建 PR(Pull Requests) 描述关联相关的 Issue, 原因(目的、解决问题),描述(做了什么,变更了什么),测试用例(有则描述,没有写无)。
- 选择将要合并的分支
PR 创建默认状态是未开启的,合并可以选择分支是 gitee 主干还是其他分支。默认为 master 主干。
5.3 评论 start build
触发门禁,进行构建
在创建好的 PR 下,评论 start build
触发门禁。
5.4 构建完成后,CodeCheck 错误需要接口人屏蔽的情况
不用修改代码,重新 start build
, 直到 CodeCheck 错误消失
5.5 构建完成后,CodeCheck 错误需要修改的情况
修改完 CodeCheck,需要重新提交一次,再触发 start build
,二次修改提交指令列表:
git add .
git commit --amend -s
git push -f
5.6 非个人原因导致 CI 门禁失败,重新 start build
, 直到全部成功,全部成功如图
5.7 最终构建完成
构建完成,无 CodeCheck 错误,找接口人代码检视 review,没有问题他会点赞加分,最后找该仓负责人合入 merge。