首先在本地环境利用sed awk等实现单机替换版本号, 然后再CI环境测试, 会遇到如下问题:
1. 脚本 本地测OK,远端测未能修改Cmakelists->在git插件中加入CMakelists.txt
2. 403->将play_master仓库改为protected 改为推送至play_master
3. semantic-release commit记录解析失败->就算是通过-f上传还是要先pull
4. 4.3.0已存在 ->先删除
5. should not trigger a release ->尝试增加-m feat
6. 在prepareCmd中执行 尽管log正确 但并未修改代码仓里的文件->研究上传过程log,确认执行脚本的阶段
7. 慢一个版本 ->改为success阶段试试->success太晚, addChannel没有此阶段, prepare太早,改为publish
8. npm ERR! This is an error with npm itself. Please report this error at -> retry
9. publishCmd过程无效 ->推断是解析了stdout->删除stdout的内容
10. 细查log发现在preCmd过程有问题 默认提供的阶段Cmd不能满足需求 必须在pre阶段的细节中执行Cmd.->研究能不能改变先后顺序->尝试改变.releaserc加载顺序
11. semantic-release内部仍然存在一定顺序问题 比如exec的generateNotes可能在git的prepare之后执行 ->将exec放到最后 将Cmd改为generatenotes
12. 仍然慢一个版本-> 细节顺序不定, 改为尝试从环境变量读取nextVersion /嵌套在npm里->嵌套会invalid.从环境变量读取OK->功能实现OK