1、下载Jenkins并安装

官网下载地址:https://jenkins.io/download

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_上传


我们下载上图所示Window版本,下载下来是个.zip的压缩包,我们解压一下会得到一个安装文件,我们双击安装,一直Next,即可安装完成。

2、Jenkins配置

安装完jenkins会自动在浏览器中打开如下页面:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_上传_02


提示说密码在C:\Program Files (x86)\Jenkins\secrets\initialAdminPassword,我们找到initialAdminPassword文件将密码复制粘贴到上面即可。点击继续会弹出如下页面提示安装插件:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_git_03

我们安装推荐的插件即可,安装界面:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_上传_04


安装过程需要10分钟左右。等安装完成后,会自动跳转如下页面需要我们创建账号:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_git_05


填写一下:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_上传_06


保存后跳转到如下页面:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_git_07


这里我们暂时不配置,点击现在不要,跳转:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_Jenkins_08


点击开始使用Jenkins跳转到工作台页面:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_上传_09

3、打包前相关配置

1、android sdk配置:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_git_10


jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_Jenkins_11


键必须是ANDROID_HOME,不可以是其他字母,下面的值就是你本机的android sdk目录:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_Jenkins_12


2、jdk配置:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_Jenkins_13


jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_Jenkins_14


3、git配置:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_Jenkins_15


git的安装路劲如何寻找:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_Jenkins_16


4、gradle配置:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_上传_17


然后点击应用、再点击保存。

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_上传_18

4、创建任务打包

1、新建任务:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_git_19


2、添加git地址:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_上传_20


jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_git_21


添加证书凭证Credentials:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_Jenkins_22


大家都知道jenkins在拉取git项目代码的时候,如果没有配置 “证书凭证Credentials” 或者配置的不对,会导致拉取不到git项目,所以这里一定要配置正确。添加成功共后选择刚添加的证书:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_git_23


然后点击应用,再点击保存 。3、拉取代码到jenkins的工作空间:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_git_24


点击build now,就开始拉取git上的代码,完成后,点击上方的工作空间就可以看到你从git上拉取的代码了:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_git_25


下载下来的项目代码在你jenkins安装目录的工作空间目录下面:

C:\Program Files (x86)\Jenkins\workspace\jenkinsDemo

ps:如果你拉取的项目比较大,则可能会拉取失败,因为在Jenkins的默认配置中,clone代码时会拉取所有历史版本的代码,而且默认的超时时限只有10分钟。这就造成在某些项目中,由于代码量本身就比较大,历史版本也比较多,再加上网络环境不是特别好,Jenkins根本没法在10分钟之内拉取完所有代码,超时后任务就会被自动终止了(错误状态码143)。

这种问题的解决方式也很简单,无非就是两种思路,要么少拉取点代码(不获取历史版本),要么提高超时时限。对应的配置在Advanced clone behaviours中,对应的配置在Advanced clone behaviours中:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_Jenkins_26


jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_Jenkins_27


Shallow clone:勾选后不获取历史版本;

Timeout (in minutes) for clone and fetch operation:配置后覆盖默认的超时时限。4、打包apk

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_git_28


jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_上传_29


jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_Jenkins_30


Tasks填写:clean build第3步点击高级,在展开的面板勾选Force GRADLE_USER_HOME to use workspace

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_git_31


如果不勾选,打包时会报错:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_上传_32


看别人的博客说是因为路径过长导致找不到文件,需要配置环境变量(键:GRADLE_USER_HOME,值:C:/Users/someuser),这里勾选Force GRADLE_USER_HOME to use workspace同样可以解决问题。然后就可以点击面板的Build Now打包apk了:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_上传_33


如上图所示,打包成功是蓝色圆圈,失败是红色圆圈,查看控制台输出可查看相关日志。

5、打包完上传至fir

点击构建后操作

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_上传_34


jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_上传_35


可以发现,并没有upload to fir选项,因为没下载fir插件

下载fir插件:http://7qn9ic.com1.z0.glb.clouddn.com/fir-plugin-fixed.hpi

下载完后上传插件:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_Jenkins_36


jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_git_37


jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_git_38


上传成功后,在回到项目点击构建后操作,已经有upload to fir选项了:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_Jenkins_39


点击upload to fir,填写fir的token保存即可,之后打完包会自动上传至fir

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_Jenkins_40


fir的token:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_Jenkins_41


jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_git_42

如果没有上传fir插件也可以使用命令行:

jenkins 自动化打包flutter iOS上传蒲公英 jenkins打包app_上传_43