流程:产品提需求,开发,部署,过冒烟,提测,测试有问题继续改,改完push新代码,测试or开发部署,测试通过准备上线。
一劳永逸的操作:装nvm,一个java环境(brew install java)
线上项目地址克隆到本地并创建自己的开发分支:
从release分支拉代码
git clone release地址
cd 项目名
git checkout release
git pull //拉取远程最新的代码
git checkout -b feat-button //新建一个自己的开发分支
git push //把自己的分支push到远程((git push --set-upstream origin feat-button))
//每拉一个新的项目,第一次把自己在本地的分支推到远程,都需要mentor把自己加个权限,加到这个项目里。
再从release分支上创建一个test-button分支:
首先把自己feat-button上的代码暂存并commit一下,
git checkout release // 切换到release分支
git checkout -b test-button //要从release切test-button分支,要保证和线上代码一样。
git push //把test分支push到远程
then npm i,(报错的话就按照提示用npm i – legacy) ,并使用正确的npm版本,就可以在feat- button分支上愉快的开发啦,并每天把feat-button分支提mr到test- button分支上。
merge request(mr):git merge 和git rebase都是在本地进行分支合并,merge request是在网页端进行分支合并,主要是可以艾特他人进行code review后再合并代码。
可能需要修改env.development文件下面的proxy-target。
前后端联调:
在前后端约定联调的时间再run api,否则要把swagger和@src/services文件点击撤销更改。
在env.development里面把proxy_target地址改为联调的环境地址。
联调流程:
在json2service文件里把后端发来的链接地址换一下。然后npm run api更新api,对自动弹出的文件选择全选,保存。
搜索后端发来的接口,path,在api/service里找到对应的接口函数。调用接口要保证path一致且去接口文档看对应的接口函数需要传入什么参数。也要注意后端返回的数据类型和内容
npm run api后如何找对应的fetch方法呢?后端发来的地址,点开,点击对应的controllerApi or baseApi or dictApi,在自动展开的那个里面有路径,把其复制并在编译器里搜索,找到对应这个path的方法名。
踩坑:npm run api以后如果有提示service里没有导出有一些变量或函数,可以去git检查一下更改。看看是不是有变量改名了。如果替换成新的变量名还是编译器提出没有这个变量导出,但是控制台不报错了,那可能是编译器没反应过来。
注意看控制台network信息,状态码及传的值及后端返回的数据。
完成了小需求,并git push到远程,mentor看了没问题,合并feat-button代码到test-button分支,就可以开始部署到测试环境了,部署完开始冒烟测试。
如何部署?
点开test环境的流水线,点击快速构建,分支记得选合完的test-button而不是feat-button。
冒烟测试:点击开始测试,去文档打开部署完的测试环境的系统地址,按照操作步骤,去验证是否达到了预期结果。一条一条过。
冒烟测试通过后,进行提测:
提测之前需要先申请加入对应项目,让mentor或负责的测试通过。在EE-KRun里点击体测列表/新建提测单,按规定填写。
如何上线?
测试那边全部测完且没有问题以后,就可以开始上线了。在上线之前需要先把线上release分支代码和自己本地的开发分支代码合一下,因为有人可能也更新了release代码。
步骤:
git branch
git checkout release
git pull//git fetch比较好
git checkout feat-button
git merge release 此时若有冲突就解决冲突,若没有就下一步
git add .
git commit -m "feat: merge后提交"
git push
or
在本地合远程另一个分支:
git fetch origin 远程分支名
git merge origin/远程分支名
git合并分支出现“Please enter a commit message to explain why this merge is necessary“解决方案:
输入“:wq”,注意是英文输入状态下的冒号,然后按下“Enter”键即可。
“ :wq”是Linux操作系统命令: 表示强制性写入文件并退出。
合过代码之后将feat-button分支push到远程库,之后mentor将其合到test-button分支,这样test-button分支上也是最新的代码。然后就可以点击流水线的快速构建来部署,这次是部署到release环境,之后点击填写上线单。