最近一年都在捣腾
Electron
,从0.X版本,到现在最新Stable的3.X版本。一路上踩的坑很多,Electron的版本号也飞快的。项目设立的初衷是一份代码,即可构建出Windows
和Mac
,并且部分功能模块可以与Web
版公用,因此我们项目名为:三体
。
由于程序比较复杂,使用Electron程度也较深,因此对比一般的桌面程序,构建流程比较繁琐,因此项目开始之初,就使用
Jenkins
作为我们项目的自动构建的工具。随着时间的推移,Jenkins的构建任务也一步步的智能化,力求智能,省心,省力。
Jenkins的安装和部署这些就不多说了,读者自行了解。
Jenkins单独部署
项目开始之初,采用的Jenkins的方式就是:windows构建主机安装一个Jenkins,Mac主机安装一个Jenkins。当需要构建时候,手动点下运行任务。
这估计也是最多人使用Jenkins的方式,0门槛的入门。
优点:部署简单,入门快 弱点:每次执行任务,需要访问两个Jenkins(这个时候,我们就只有两个主机构建,如果多个主机,则需要访问多个Jenkins),然后再执行任务。
Jenkins多节点部署
到了某个时候,发现实在太麻烦了,就使用单个Jenkins,然后通过节点管理执行Jenkins任务。
由于我们桌面端程序,构建过程,还需要把其他团队的项目进行构建,放入到我们程序的指定目录(JsBundle),这时候Jenkins的Config Files
就大显身手,把构建其他JsBundle的命令放入Config Files
(如果包没变更,则跳过构建,获取缓存的包),这样就没必要每个构建任务重复录入相同的流程,如图feature
, master
等。
这时候幸福满满的,所有任务都可以通过Jenkins执行了,而且构建权限开放给所有开发,随时构建包。