Hippy版本管理遵循所有模块使用同一版本原则
前端使用 lerna 进行版本管理和 CHANGELOG 生成,但因为需要更新终端包所以不能使用它的发布功能。
更新版本和 CHANGELOG 使用:
lerna version [VERSION] --conventional-commits --tag-version-prefix='' --no-push
[VERSION]
- 要发布的版本号,如2.1.0。--conventional-commits
- 生成基于 conventional 提交规范的 CHANGELOG。--tag-version-prefix
- 改为空字符,这样生成的版本号 tag 前面就不会带上默认的v
。--no-push
- 不会将tag推动到远程。
lerna 生成版本号和 CHANGELOG 后,需要回退一下版本,所有发布改动需要合并到一个 commit 中。
git reset --soft HEAD^
同时删除 tag,一会儿更新后需要重新生成 tag
git tag -d [VERSION]
终端版本号主要位于以下几个文件,都需要更新到即将发布的版本号
iOS
Android
随后编译新的前端 SDK
npm run build
如果有 core/js
下的代码更新,则需要编译一下 core 代码
npm run buildcore
随后更新目标 examples
下的依赖并更新终端内置包,一般而言默认内置 hippy-react-demo,但务必检查一下 hippy-vue-demo 的功能正常。
npm run buildexample -- hippy-react-demo
注意:buildexample 可能会使用旧版本的前端 SDK,需要手工更新 node_modules 下的文件后再更新内置包,buildexample 也需要将 npm install 那一步暂时注释掉。
再一次检查所有文件都正确修改
git status
提交文件修改
git add [FILES]
输入符合 Convention Commit 规范的 commit message
git commit -m 'chore(release): released [VERSION]'
打上 tag
git tag [VERSION]
提交代码,并准备发布 PR 合并到 master 分支。
git push # 提交代码
git push --tags # 提交 tag
-
前端发布到 npmjs.com
lerna exec "npm publish"
如果开启了 npm 二次验证会一直问你一次性密码,正常输入即可。
-
iOS 发布到 cocoapods.org
如果没有cocoapod账户,先进行注册
pod trunk register [EMAIL] [NAME]
然后发布
pod trunk push hippy.podspec
如果发布时参数检查失败,可以在
pod
命令前面加上COCOAPODS_VALIDATOR_SKIP_XCODEBUILD=1
参数 -
Android 发布到 bintray 在 Android Studio 中打开
examples/android-demo
项目,在local.properties
添加bintrayUser=[user]
和bintrayKey=[key]
,其中[user]
和[key]
分别对应用户在bintray的账号名
和API key
,添加完后字旁边的 Gradle 面板中运行android-demo
>android-sdk
>publishing
>:android-sdk:bintrayUpload
即可发布。