Jenkins是一款由Java编写的开源的持续集成工具。Jenkins运行依赖Java JDK,如果你未安装JDK,需要先去安装(估计你肯定已经安装过了)。
一:安装Jenkins
首先我们安装Jenkins,我们可以通过Homebrew安装,也可以通过客户端安装,这里推荐大家使用Homebrew安装,因为通过客户端安装,后面配置过程中,你可能会遇到权限配置问题( 本文里的环境是macOS)。
如果你的Mac未安装Homebrew,需要先安装Homebrew。
1.安装Homebrew,在终端输入(如果已安装,可跳过):
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2.安装Jenkins,在终端输入安装命令:
brew install jenkins
安装成功结果:
可以看到结果提示,如果想在开机就启动Jenkins,可以使用命令 brew services start jenkins 来启动Jenkins,否则直接使用命令 jenkins 来启动。
二:启动Jenkins
1.在终端输入启动命令:
jenkins
第一次启动Jenkins,终端会打印出Jenkins管理员初始登录密码,复制这个密码,我们后面要使用
2.在浏览器输入:http://localhost:8080,访问Jenkins主页。结果如下:
根据页面提示我们可以在路径 /Users/wf/.jenkins/secrets/initialAdminPassword 文件里找到Jenkins初始登录密码,也可以使用我们上一步复制的密码。这两处的密码是一样的。
3.在上一步输入密码,然后点击“继续”,进入插件安装页面
我们点击第一个”安装推荐的插件”(这里推荐选择第一个,我们安装Jenkins推荐的所有插件,否则后面我们要一个一个去安装好多插件),选择之后进入安装页面
插件安装中,这里需要点时间,稍等一会。
4.安装成功后,我们需要创建一个管理员用户
填写你想输入的信息,然后“保存并完成”,进入下一个页面(这里你可以在你的记事本上把用户名和密码备份一下,如果你忘记了,后面再配置的话,会很麻烦)
5.实例配置使用默认,不用修改,然后“保存并完成”。进入下一个页面
6.开始页面,点击“开始使用jenkins”
三:进入Jenkins主页
1.在创建新任务之前,我们先安装一个插件。点击左侧的 Manage Jenkins -> Manage Plugins(插件管理)
2.选择可选插件,在右上角搜索框,输入插件名称:Git Parameter,然后勾选,点击“直接安装”
安装成功后,返回首页
四:配置Android环境变量
1.在左侧选择Manager Jenkins -> System Configuration
2.找到全局,勾选Environment variables,然后“新增”
3.配置Android环境变量,然后”保存“。
五:创建任务
1.点击“创建一个新任务”,进入创建页面
2.输入项目名称,选择 Freestyle project(构建一个自由风格的项目) ,然后”确定”,进入配置页面
General配置
输入简单的项目描述
源码管理配置
1.在左侧勾选Git,然后输入你项目的Git仓库地址。然后我们需要添加一个账号(这里的账号就是你Git的用户名和密码,Jenkins会用来登录Git仓库拉取代码),点击“添加”
2.添加页面:输入Git用户名和密码,点击”添加“。
3.添加成功后,然后选择你刚才添加的账号。在分支栏你可以修改分支名称,这里我们先使用master,后面我们会做成动态的,根据用户手选分支,而不是写死。
4.修改超时时间:如果你的工程比较大,那么建议修改一下Git的克隆和拉取时间,不然Jenkins拉取代码的时候会超时。在下面点击”新增“->选择”Advanced Clone behaviours“
然后根据下面,输入配置信息
构建配置
在构建配置选择 Execute shell,然后输入打包命令。打包命令可以去这里下载。具体的iOS打包命令含义可以去这里学习Android自动打包apk。
输入构建命令
然后保存,回到项目首页。
六:构建项目
1.点击左侧 Build Now(立即构建)
2.构建中...
3.构建成功,此时打开你的蒲公英,就会看到刚才打的新包
七:参数化构建
经过上面的步骤我们已经可以实现自动化打包,并上传到蒲公英。可是实际上的需求是:我们希望打包的时候可以手动选择某个分支,然后再选择某个环境,然后再自动化构建对应的包。这时就需要使用参数化构建。
1.点击左侧”配置“,我们重新进入刚才的配置页面
2.勾选参数化构建
添加参数,选择Git Parameter
然后配置Git构建参数信息:
再次添加参数,选择Choice Parameter
配置Choice Parameter打包环境参数信息
3.修改源码管理,将分支名称修改为我们上面Git Parameter里配置的Key名称(其实代表的就是分支名称)
4.然后修改打包脚本,我们可以根据上面设置的名称 SRERVICE_ENVIRONMENT 来获取用户选择的环境,然后我们需要根据环境修改对应的代码。这里有两种方式:
先看项目里的代码,我们的目的就是通过脚本修改常量 ENVIRONMENT 的值,看代码我们可以修改为DEV、TEST、Production 其中一项,变量 env 会根据 ENVIRONMENT 的值赋值对应的环境。
看了代码,其实也就明白了,上面配置的打包环境字符串参数的值和代码里字符串值是对应的
5.我们加入了分支选择和环境选择,所以需要修改打包脚本,去这里下载
脚本讲解
脚本一:file_app_path是要修改代码的java文件路径,也就是我们会使用脚本修改这个文件里的 ENVIRONMENT 常量的值。
file_app_path=${path}src/main/java/com/example/test/AppEnv.java
脚本二:找到我们要修改代码的java文件,然后将默认的字符串SRERVICE_ENVIRONMENT修改为打包时所选对应的定义好的字符串。
# 更改打包环境
environment="SRERVICE_ENVIRONMENT"
target_environment=${nameSuffix}
sed -i '' 's/'${environment}'/'${target_environment}'/g' $file_app_path
environment变量:是我们项目里默认的字符串
target_environment变量:是我们上面选择的环境对应的字符串
最后一行脚本的作用就是替换,将 environment 替换为 target_environment 。
脚本三:再打包完成之后,我们又将字符串替换回去,相当于恢复我们刚刚修改的代码,刚好和上面的相反
# 更改打包环境
sed -i '' 's/'${target_environment}'/'${environment}'/g' $file_app_path
然后保存,此时之前的 Build Now 已经变成 Build with Parameters,点击
6.然后保存,回到项目首页。
八:再次构建项目
在左侧选择”Build with parameters“,然后选择对应的分支,对应的环境,开始构建
构建成功,再次打开你的蒲公英,就会看到刚才打的指定分支、指定环境的新包。
你也可以扩展一些其他功能,比如打包完成后,给测试人员发送邮件。