Jenkins自动化构建

一、Tomcat和Jenkins下载安装

1. 下载Tomcat:

download_Jenkins.png

下载完成后解压到指定目录下,然后命名为Tomcat,启动Tomcat 打开终端,切换到Tomcat/bin目录下,然后输入:./startup.sh 回车,或者Windows下双击startup.bat, 就可以启动我们的Tomcat了打开浏览器输入http://localhost:8080/,如果出现一只猫,则证明配置成功.

2. 安装Jenkins:

download_Jenkins_plugin.png

将下载的Jenkins.war包直接放到tomcat下的webapps目录
启动tomcat
然后打开http://localhost:8080/jenkins
然后就是一系列的安装过程,默认即可。。。加载的一些插件可以根据自己的需要选择,或者选择推荐的插件安装
可能遇到的问题:打开http://localhost:8080/jenkins报404错误,可能tomcat没启动,或者下载的Jenkins.war是坏的,重新下载即可.

3. 首次打开Jenkins,会提示安装所需的插件:

download_Jenkins_plugin.png

除默认插件, 还有其他一些插件推荐:


other_jenkins_plugins.png

[图片上传中...(system_config_2.png-1414fb-1527336684558-0)]

注意:在首次进入Jenkins并设置admin管理员账号后, 要立即修改admin密码, 否则下次登录登录不了.

二、系统管理-系统设置:

1. Jenkins空间目录结构

system_config_2.png

说明:
(1)主目录即安装Jenkins自动生成的Jenkins所有配置,工程,插件,日志等存放的目录, 一般在当前用户下创建;
(2)工作空间根目录,即所创建的Job从svn或者git等拉到本地的代码存放的目录,即 下图红框2;
(3)构建记录根目录,即创建的Job构建的日志记录以及配置项所存放的目录,即 下图红框1.

system_config_1.png

2. 全局属性配置

在这里配置全局都可用的属性, 例如系统JDK, SDK,NDK, Python等环境变量(如果Jenkins所在的系统有配置对应的环境变量到系统path里,那么这些都可以不用配, 如果没有配置,则可以在这里配置好, 否则在编译时会提示找不到对应需要的库.), 例如下面配置了Python路径的环境变量.


system_config_3.png

3. 配置源码服务器

这里我用的是gitlab托管我的代码,所以配置对应的gitlab即可, 也可以不配置, 在具体Job里去配置也可以, 例如我这里就没有配置.其他代码托管平台类似.


system_config_4.png

4. 配置邮箱服务器, 首先需要添加Email Extension Plugin插件, 然后就会出现下面的配置项:

(1) 配置系统管理员邮箱, 这里配置你的邮箱地址:
(2) 配置(1)设置的系统邮箱地址用户名密码等.


system_config_5.png

5. 配置自动将安装包上传到ftp服务器

需要安装Publish over FTP插件, 然后就会出现下面的配置项,逐项配置即可:


system_config_6.png

三、新创建并配置Job

1. 在Jenkins首页点击新建:

job_config_1.png

2. 配置参数化构建过程:

job_config_2.png

3. 配置主工程源码及依赖工程源码

因为我们项目工程结构比较特殊, 依赖module并不包含在主工程目录里, 而是与主工程目录平级的, 所以采用了Multiple SCMs, 并且配合动态替换setting.gradle的方式,达到正确引入module依赖的目的.

下载好Multiple SCMs插件后, 就会出现下面的"Multiple SCMs"选项, 如下图配置:


job_config_3.png

在module下选择'Add', 选择 'check out to a sub-directory',配置本地目录module根目录名.


job_config_4.png

这里说明一下,其实我们的代码会从服务端拉取到本地, 并在本地生成对应的目录,这个目录就是上面所说的'workspace'目录里, 然后具体构建的时候就对本地代码进行的编译构建.

4. 构建环境

需要下载build-name-setter插件,才会出现 Set Build Name这个选项.


job_config_5.png

5.构建配置

注意下面的各个子项是可以长按拖动位置位置的,具体位置如何, 要根据是需要在开始构建前做一些操作还是在开始构建后, 比如说下面的copy命令,就是因为我们需要在开始构建前,完成setting.gradle的替换操作, 所以位置前移到了构建开始前.

如果是Windows系统,则选择'Execute Windows batch command',并输入如下命令:
copy /y %WORKSPACE%\settings_copy.gradle %WORKSPACE%\settings.gradle
如果是Linux或者Mac系统, 则选择'Execute shell', 并输入如下命令:
\cp -rf $WORKSPACE/settings_copy.gradle $WORKSPACE/settings.gradle

job_config_7.png

注意到上面有一个Python命令, 用于生成下载二维码用的,在这之前, 需要先去github上下载qrcode-master到本地, 然后再本地磁盘上指定一个目录存放二维码图片,例如上面的download目录, 那么如何将Tomcat与这个目录联系起来呢? 需要做如下操作:

其中E:\download是硬盘上创建的保存路径,需要在\Tomcat\conf\Catalina\localhost里创建一个download.xml文件,并映射该路径: <?xml version="1.0" encoding="UTF-8"?> <Context path="/download" docBase="E://download" crossContext="true"> </Context>

这样执行上面的Python命令就可以生成对应的apk包的二维码了, 如果是Linux系统,也是类似的, 具体不详细说.

6. 构建后操作:

job_config_8.png

<img src='http://localhost:8080/download/qrcode.png' width=200px height=200px> </img> <a href='http://localhost:8080/jenkins/job/job名/lastSuccessfulBuild/artifact/app/build/outputs/apk/app-develop-debug.apk'>下载连接</a>

邮箱配置里的环境变量均已在全局系统配置里声明了, 否则也可以直接在这里写.

参考文献:

Jenkins+Tomcat + Gradle + Tinker + Walle + 360加固 + fir.im 持续集成,自动构建
移动测试基础 使用 Jenkins 搭建 iOS/Android 持续集成打包平台 (开箱即用)
Jenkins进阶系列之——04Publish Over FTP Plugin插件
Jenkins+Gradle实现android开发持续集成问题汇总
Android Jenkins+Git+Gradle持续集成-实在太详细
Jenkins中配置多项目SCM
Jenkins可用环境变量列表以及环境变量的使用(Shell/Command/Maven/Ant)
Jenkins自动打包配置
Android-解放双手告别测试-使用Jenkins自动化打包

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容