-
如未作特殊说明,所有命令的执行环境为本地开发机。
-
目前有两台服务器,分别为正式产品环境(以下简称production) 和预发布环境(以下简称staging) 。
-
使用 Git 管理源码。获取源码:
git clone https://gitee.com/zonton/rongtongteacher.git
-
代码和文档可以在 Gitee 上查看。当有新功能需要上线时,首先请其他人在 Gitee 上 Review 代码。
-
开发严格使用 Gitflow 流程。
-
首先请安装并设置好 Gitflow.
-
eclipse安装egit EGit Download EGit Guide.
-
开发新功能时,首先创建 feature 分支,分支命名规则为 yyyymmdd_username_featurename,如 20171009_yangjian_update_readme:
git flow feature start 20171009_yangjian_update_readme
该命令会自动创建并切换到分支 20171009_yangjian_update_readme, 请在此分支上开发。
-
当功能开发完成后,确保本地单元测试通过,手工测试通过,代码在 Gitee 上经过其他人 review, 然后将代码合并到 develop 并 push 到服务器:
# 此时在 feature/20171009_yangjian_update_readme 分支上,命令执行后会切换到 develop 分支上 git flow feature finish 20171009_yangjian_update_readme # 此时在 develop 分支上 git push
-
部署前保证所有测试通过, feature 已经 finish 并合并到 develop。
-
创建并发布 release 分支. release 分支的规则为 yyyymmdd, 如:
git flow release start 20171009 git flow release publish 20171009
-
将 release 分支部署到 staging 服务器:
-
在 staging 上查看功能是否正常,如果有问题,直接在 release 分支上修改并 push.
-
当确认 staging 上一切正常后 finish release 分支。如:
git flow release finish 20171009 git push --tags
注意: release 分支在 finish 的过程中会建立 release tag, release tag 的格式为 yymmdd, 如 20190922. 因为 finish release 分支时会将它分别合并到 master 和 develop, 并创建 tag, 所以切记要补全这三种提交信息,否则 finish 可能会中断!
-
此时新增的功能已在 master 分支上。最后部署 master 分支到产品环境(请谨慎使用!):
-
在预发布及正式部署过程中,请时刻关注 NewRelic 各种监控指标的变化(尤其是异常)!