Electron开发实战之记账软件12——通过CI系统自动构建与发布
当提交代码到 Github 后,CI 自动拉取代码,运行 electron-builder 相关命令,生成个平台的安装包,并将安装包推送到 Github Releases 中。
什么是CI?
CI是持续集成的意思,持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。偷了张图。
第三方的CI系统,它们能够帮我们,在某些分支(比如master)发生了某些更新(比如更新了tag)的时候帮我们执行某些脚本(比如构建、测试)。这样就省却了我们在本地、多平台构建的烦心事,而且让一些都变得「自动化」了起来。
针对Linux或者macOS的构建,我们可以使用Travis-CI,针对Windows平台的构建,我们可以使用AppVeyor。Github开源项目都是免费的,但是如果你想私有库持续集成,那就需要购买他们的服务了,价格不菲,或者你也可以使用Jenkins,它是开源的,你可以自己搭建持续构建环境,很多企业在用这个。
其实还有CD(持续部署)等,这里我们就不讲了。
生成 GH_TOKEN
electron-builder 需要 GH_TOKEN(Github Personal access token) 才有权限上传文件到 Github Releases 中。该 Token 在 github token 配置页面 中进行设置。由于我们的 CI 只需要公用仓储的访问权限,所以只需要勾选repo > public_repo 复选框即可。这个 token 只显示一次,需要记录下来,我们在 CI 中配置 GH_TOKEN 环境变量时要用到这个值。
Travis-CI
Travis-CI 支持Linux 和 mac 平台。直接关联github账号注册登录即可。成功后就可以看到你的仓库。
选择仓库后,等一段时间就能看到构建情况了。
添加GH_TOKEN环境变量,值就是刚才github配置的那个token。
刚开始肯定是不顺利的,记得看一下出错的原因,然后解决相应的问题,如果不行就看一下别人的是怎么写的,复制一下就好了。
nvm版本太低:
渲染进程错误,错误问题是我文件名是大写的,这是我个人错误,你们不一定出现,参考下。
修改完error后,我们发现终于成功了。时间还蛮长的呢,10几分钟。
怎么release里面啥也没有?
分别在travis.yml 和 package.json中添加脚本。
electron-builder官网有说明识别这个“release”这个命令,以后你每次提交 master 分支和 vx.xx.xx 标签到 github 时,travis 将自动构建 linux 和 osx 安装包当发布到 Github draft release。
诺,有了。
draft是草稿的意思,你可以继续“edit”,然后 “publish release”。v0.1,这个版本和package.json的version有关。
后面我们还会完善这些脚本,因为后面我们还要制作文档网站等。
AppVeyor
当然也要注册了,AppVeyor是windows平台。我使用Github直接登录出错,使用126邮箱也出错,后来我换了Gmail就好了,然后绑定github登录。
流程和Travis差不多,点击授权按钮进行授权,之后会出现你的仓库,选择你要构建的仓库,点击后面的“Add”,然后会给我发送了账号激活邮件,激活就可以了。
改一下settings,我主要是改了build分支为master。
然后添加GH_TOKEN环境变量
appveyor.yml 这个文件目前不需要改
现在每次想发布新版本时,只要更改package.json的version值就好了。提交代码后就会自动构建了,最后的效果如下。
如果还想了解更具体信息
我上面的操作都是很简单的,常规的最起码有多个分支,例如dev分支只用来开发,master分支用来构建等。release最好也不要这样用,太糙了。
https://www.electron.build/configuration/publish
转载于:https://my.oschina.net/u/3667677/blog/3044025
- Electron开发实战之记账软件14——自动更新
- Electron开发实战之记账软件19——通过协议唤起Electron应用
- Electron开发实战之记账软件16——使用Docsify生成文档网站
- Electron开发实战之记账软件17——使用Lowdb存储数据
- Electron开发实战之记账软件18——备份、恢复、导入、导出
- Electron开发实战之记账软件13——添加Github徽章
- 构建企业的综合信息管理系统——蓝点通用管理软件V10.0发布
- 设计模式在软件应用系统开发中的实战参考
- 设计模式在软件应用系统开发中的实战参考
- 基于git maven jenkins的自动构建发布系统三
- 让普通业余软件开发兴趣爱好者也快速开发出相对专业的软件产品 - 通过实战开发讲解实现步骤
- .net 基于Jenkins的自动构建系统开发
- 初识 Spring(22)---(SpringMVC实战--构建学生管理系统(12))
- .net平台手机管理软件开发(12)—— 短信部分 通过RS232发送和接收短信
- 让普通业余软件开发兴趣爱好者也快速开发出相对专业的软件产品 - 通过实战开发讲解实现步骤
- PXE项目实战,通过编写脚本自动安装系统时批量部署服务器所需要的所有服务
- Cordova webapp实战开发:(7)如何通过简单的方法做到,不重新发布APP来修复bug、增加功能、或者躲开苹果的一些严格审核?
- 面对软件错误构建可靠的分布式系统_笔记12
- 量化智能对冲搬砖交易系统开发,自动交易软件开发
- Android开发周报:CM 7.1体验版发布、Buck构建工程实战