【Jenkins】Jenkins集成Android全自动参数化打包专题

1 集成步骤

1.1 远程节点连接

Mac Slave节点上建立连接用脚本

java -jar slave.jar -jnlpUrl http://192.168.23.13:8080/jenkins/computer/IOS_Node/slave-agent.jnlp -secret62b5dc021bbf90e8207057760bf71fae93867c154add3963e5f9c3befee2df06

Windows平台Jenkins连接MacSlave节点上建立连接用脚本

java -jar agent.jar -jnlpUrl http://192.168.23.34:8080/jenkins/computer/IOS_Node/slave-agent.jnlp

-secret 62b5dc021bbf90e8207057760bf71fae93867c154add3963e5f9c3befee2df06

Mac平台Jenkins连接WindowsSlave节点上建立连接用脚本

打开cmd命令行窗口,输入如下命令:

Cmd C:\Users\hjdev\.jenkins

java -jar agent.jar -jnlpUrl http://192.168.23.34:8080/computer/Android_Dev/slave-agent.jnlp -secret de88da611ce63c67a07d13083e38b6e44d0547d84ff706802c4c54c8a09d7c3d -workDir “C:\Users\hjdev\.jenkins”

1.2 参数化构建

(Good)利用Jenkins玩转Android自动打包发包

http://blog.csdn.net/mabeijianxi/article/details/52680283

Jenkins参数化构建

https://www.cnblogs.com/meitian/p/5492457.html

Jenkins参数化构建android项目

http://blog.csdn.net/u012400222/article/details/78232402

参数化构建build.gradle样例:

https://github.com/mabeijianxi/android-automation/blob/master/build.gradle

参数化构建gradle.properties样例

https://github.com/mabeijianxi/android-automation/blob/master/gradle.properties

1.2.1 7zip压缩命令

“C:\Program Files\7-Zip\7z.exe” a “C:\Users\hjdev\.jenkins\workspace\Android_Dis\m.zip” “C:\Users\hjdev\.jenkins\workspace\Android_Dis\www”

1.2.2 xcopy命令

xcopy C:\Users\hjdev\.jenkins\workspace\androidXML\xml C:\Users\hjdev\.jenkins\workspace\Android_Dis\app\src\main\res\xml /e/R /Y

1.2.3 copy命令

copy “C:\Users\hjdev\.jenkins\Android_Dis\m.zip” “C:\Users\hjdev\.jenkins\Android_Dis\app\src\main\assets” -Y

1.3 自动发布脚本

在Windows下使用curl命令

https://www.2cto.com/os/201205/131164.html

使用 Jenkins 插件上传应用到蒲公英

https://www.pgyer.com/doc/view/jenkins_plugin

使用Jenkins实现持续集成(Android)并上传蒲公英

https://www.pgyer.com/doc/view/jenkins

curl -F “file=@\app\build\outputs\apk\app-dev.apk” -F “uKey=05cac798537b5f0bd0fb3fda30b66751” -F “_api_key=d25e340391b092101d8810c328c125ee” http://www.pgyer.com/apiv1/app/upload

1.4 定时构建

1.4.1 定时构建语法

    * * * * *

            第一个*表示分钟,取值0~59

            第二个*表示小时,取值0~23

            第三个*表示一个月的第几天,取值1~31

            第四个*表示第几月,取值1~12

            第五个*表示一周中的第几天,取值0~7,其中0和7代表的都是周日

1.4.2 常用定时构建举例

  由于项目的代码一般存在放SVN中,而一个SVN往往是有多个项目组在提交代码,而每个项目组又有多人组成,其中每个人也都在对自己的那块代码不停地在进行维护,所以说对于一个公司而言,SVN的提交记录往往是很频繁的,正因为如此,Jenkins在执行自动化构建时往往是以天为单位来执行的,下面举的例子就是在一天中常用的定时构建示例。

    每隔5分钟构建一次                              H/5 * * * *

    每两小时构建一次                                H H/2 * * *

    每天中午下班前定时构建一次               0 12 * * * 

    每天下午下班前定时构建一次               0 18 * * *

1.4.3 定时构建设置

  在Jenkins的主页面中,点击构建的项目,如下图所示:

《【Jenkins】Jenkins集成Android全自动参数化打包专题》

  在project-parent页面,点击左侧的【配置】按钮,进入项目配置页面

《【Jenkins】Jenkins集成Android全自动参数化打包专题》

  在【配置】页面中,下拉到【构建触发器】,在这里有两个可选选项,分别是“Buildperiodically”和“Poll SCM”,它们的特点如下:

            Build periodically

  无论SVN中数据有无变化,均执行定时化的构建任务

            Poll SCM

  定时轮询SVN,查看SVN中是否有数据变化,如果有变化,则执行构建任务

《【Jenkins】Jenkins集成Android全自动参数化打包专题》

  至于上面两种情况,到底怎么选,亦或是组合在一起,都是看项目的需要,按照项目的需求进行配置。

2 参考链接

利用Jenkins玩转Android自动打包发包

http://blog.csdn.net/mabeijianxi/article/details/52680283

两种常见挂载Jenkins slave节点的方法

http://blog.csdn.net/liuchunming033/article/details/52025541

Jenkins Master,Slave使用问题汇总及解决方案

http://blog.csdn.net/achang21/article/details/45153199

linux jenkins添加windows节点,实现自动化部署

http://blog.csdn.net/yfx000/article/details/52023654

Jenkins使用教程之管理节点

https://www.jianshu.com/p/047362b11403

Jenkins Windows slave节点部署

http://blog.csdn.net/hifour/article/details/69374837

Jenkins 为Jenkins添加Windows Slave远程执行python项目脚本

http://blog.sina.com.cn/s/blog_13cc013b50102w1yr.html

【Jenkins】Jenkins配置从节点,实现远程主机调用功能

https://www.cnblogs.com/MrCandy/p/6758956.html

[原]Jenkins(一)—我理解的jenkins是这样的

[原]Jenkins(二)—jenkins之Git+maven+jdk+tomcat

[原]Jenkins(三)—Jenkins初始配置和插件配置

[原]Jenkins(四)—Jenkins添加密钥对

[原]jenkins(五)—jenkins添加项目

[原]jenkins(六)—jenkins远程部署脚本

[原]Jenkins(七)—jenkins项目编译测试发布由maven构建的web项目

[原]Jenkins(八)—jenkins构建项目报错时发送错误报告邮件

[原]Jenkins(九)—jenkins分别发布多个项目到多个远程主机

[原]Jenkins(十)—jenkins注册管理员admin并赋所有权限给admin

[原]Jenkins(十一)—jenkins使用管理员admin创建用户和分配权限

[原]Jenkins(十二)—jenkins管理员用户无法登陆解决办法Access Denied

[原]Jenkins(十三)—jenkins用户权限管理

[原]Jenkins(十四)—jenkins示例:admin管理所有项目,新建用户只能看部分项目

[原]Jenkins(十五)—jenkins插件之deploy

jenkins配置从节点

https://www.cnblogs.com/jsonhc/p/7372359.html

[原]Jenkins(九)—jenkins分别发布多个项目到多个远程主机

https://www.cnblogs.com/horizonli/p/5336098.html

Windows中的COPY、XCOPY和MOVE覆盖功能发生更改

https://support.microsoft.com/zh-cn/help/240268/copy–xcopy–and-move-overwrite-functionality-changes-in-windows

windows复制文件夹命令xcopy

http://blog.csdn.net/mfkjq/article/details/69230369

windows copy命令详解

http://blog.csdn.net/u011334738/article/details/24602883

Jenkins之定时构建

http://blog.csdn.net/zzy1078689276/article/details/77520441

    原文作者:Kevin_Junbaozi
    原文地址: https://www.jianshu.com/p/54b3b8b0fdde
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞