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
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的主页面中,点击构建的项目,如下图所示:
在project-parent页面,点击左侧的【配置】按钮,进入项目配置页面
在【配置】页面中,下拉到【构建触发器】,在这里有两个可选选项,分别是“Buildperiodically”和“Poll SCM”,它们的特点如下:
Build periodically
无论SVN中数据有无变化,均执行定时化的构建任务
Poll SCM
定时轮询SVN,查看SVN中是否有数据变化,如果有变化,则执行构建任务
至于上面两种情况,到底怎么选,亦或是组合在一起,都是看项目的需要,按照项目的需求进行配置。
2 参考链接
利用Jenkins玩转Android自动打包发包
http://blog.csdn.net/mabeijianxi/article/details/52680283
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项目编译测试发布由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
https://www.cnblogs.com/jsonhc/p/7372359.html
[原]Jenkins(九)---jenkins分别发布多个项目到多个远程主机
https://www.cnblogs.com/horizonli/p/5336098.html
Windows中的COPY、XCOPY和MOVE覆盖功能发生更改
windows复制文件夹命令xcopy
http://blog.csdn.net/mfkjq/article/details/69230369
windows copy命令详解
http://blog.csdn.net/u011334738/article/details/24602883
Jenkins之定时构建