最近公司想搭建自动化构建平台,由于以前自己在空闲时间折腾过jenkins搭建相关的东西,领导就把这个任务交给了我,虽然以前在自己的电脑上搭建过,由于时间过去太久了,当时又没做记录,搭建的时候还是踩了不少坑,不过在google爸爸的帮助下,翻阅各种资料,最后都爬坑解决,所以这里对再此搭建做一个记录,避免以后遗忘。
连接远程服务器
java -version
- 如果没有显示版本号则需要安装,安装命令
sudo yum install java
安装jenkins
- 添加安装源
sudo wget -O /etc/yum.repos.d/jenkins.repo http://jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
- 安装
yum install jenkins
jenkins安装目录
/var/lib/jenkins/
jenkins配置文件目录
/etc/sysconfig/jenkins
- 主要参数:
- JENKINS_HOME:Jenkins的主目录,Jenkins工作目录,储存文件的地址,Jenkins的插件,生成的文件都在这个目录下
- JENKINS_USER:Jenkins的用户,拥有$JENKINS_HOME和/var/log/jenkins的权限
- JENKINS_PORT:Jenkins的端口,默认端口是8080
启动jenkins服务
sudo service jenkins start
- 此时在浏览器中输入:http://<服务器ip>:8080/ 就可以进入Jenkins界面,8080是默认端口号
停止jenkins服务
sudo service jenkins stop
创建项目并配置
- 选择New任务,新建一个项目
- 输入一个项目名称
- 选择构建一个自由风格的软件项目,点击左下角的ok
- 输入项目的文字描述
- 勾选丢弃旧的构建,设置保留的构建天数和保留的最大构建数
- 勾选参数化构建过程,添加不同类型的参数
- 布尔值参数
- 文本参数
- 选项参数
- git Parameter
- dynamic Parameter
打包前,要配置这些参数,配置界面展示效果如下:
- Source Code Management配置git远程代码仓库
- 复制项目地址并填入Repository URL
- Credentials,点击add,选择jenkins账户(jenkins统一用这个),该账户需加入项目,拥有代码拉取权限
- 配置成功后不会有红字错误提示
- 有的项目克隆比较慢,可能会有克隆超时导致构建失败的问题,可以把这个超时时间改大一点,需要添加一个配置
- Additional Behaviours点击Add
- 选择Advanced clone behaviours
- 修改Timeout (in minutes) for clone and fetch operations的值,改大一点60
- Build Triggers配置轮询构建和定时构建
定时构建: 无论git中有无提交,均执行定时化的构建任务
轮询构建: 查看git中是否有提交,如果有,则执行构建任务
每隔5分钟构建一次H/5 * * * *
每两小时构建一次H H/2 * * *
每天中午下班前定时构建一次0 12 * * *
每天下午下班前定时构建一次0 18 * * *
- Build Environment设置构建名称
- 勾选Set Build Name,这里填写的参数对应上面设置的参数,保持名称一致
打包后展示的效果如下:
- Build构建方式(Android以gradle为例)
- 点击add build step,选择Invoke Gradle script
勾选Invoke Gradle,选择Gradle Version为gradle4.6 - 填写task,配置gradle打包命令
clean assemble${BUILD_TYPE} --stacktrace
,这里的BUILD_TYPE引用前面配置的 - 点击Advanced选项,勾选Pass all job parameters as Project properties,将上面的配置参数全部传入gradle.properties配置文件中,实现参数化打包
- Post-build Actions
- 点击add Post-build Actions,选择归档成品,提取打包后的apk文件
- Files to archive填入过滤规则
- 在所有文件中过滤apk文件
- 点击add Post-build Actions,配置打包后的邮箱通知
一般情况下使用默认配置就可以,直接引用全局配置中已经配置过的参数。
如果要修改接收人邮箱,编辑Project Recipient List,多个邮箱地址,空格隔开
如果要修改发送邮件的内容,可编辑以下几项 - Content Type 文本类型,可配置html、纯文本、纯文本和html
- Default Subject 邮件标题
- Default Content 邮件内容
打包日志压缩并添加附件,Attach Build Log选择Compress and Attach Build Log
邮件发送触发器配置,点击Advanced选项,编辑Triggers选项,点击Add Trigger,可以选择触发器类型,不管构建成功失败总是触发(默认),成功时触发,失败时触发 - 此时项目配置完毕
打包流程
- 选择要打包的项目
- 点击Build with Parameters,进入打包前的参数配置流程
- 配置好打包的参数,点击build开始打包
- 点击打包进程可查看相关信息
- 点击Console Output可查看打包日志
- 如果配置了邮件通知,打包完成后邮箱会收到一封邮件