如何实现 post重启jenkins post api

经常看到很多博文里面讲’懒惰’是一个优秀程序猿的良好品质,这一点我深以为然,因为在程序猿的工作中总是充满了重复劳动,也许正是因为这个原因,导致大部分程序猿慢慢变得懒惰,而那些没变懒的程序猿他们慢慢灭绝了~~~。而对于懒惰这个词,我们不能曲解它的意思,并不是怠倦、消沉的对待工作,而是当一个程序员遇到重复的工作时,懒惰的程序员首先想到的是我要开发出一个工具自动执行这些工作。
为什么需要工具
当 UI 妹子给你一大堆图片而没有给你加上 @2x 后缀时,看着妹子可怜的眼神,怎么忍心让妹子们返工,懒惰的程序员就在想了,这特么是一个循环重复的劳动,为啥不写个脚本自动给每张图片文件名加上一个 @2x 后缀呢,分分钟搞定,然后准时下班约会去了。。。。
所以很早之前我的第一个开源工具&&就是这么来的,当我连在命令行中续修改了几个友盟统计后台收集到异常后,我发现这就是一个重复而且繁琐的劳动啊,所以我便花了两个多小时做了一个
APP 应用,这样以后我每次需要做的只是:1)打开应用,2)拖入 dSYM 文件 3)输入异常地址,便得到异常信息了。
而写这篇文章则讲述了我是如何一步一步从 1)手动打包 –& 2)Jenkins 打包,手动发布 –& 3)Jenkins 打包 + 蒲公英 分发 的。
对于发包这个问题,相信是每个程序猿哥哥心中挥之不去的痛,而测试妹子们也在每次马上就发的承诺中得出一个结论 : “你是个大骗子”。
所以每次被测试妹子追着要测试包,产品经理说给我装一个开发中的新版本瞧瞧呗,后台哥哥说给我安装一个某某老版本的包调试一下啊。。。然后每次不得暂停下手中的工作,切换到某个版本,Archive。。。。终于有一次答应测试妹子吃饭前会给他们发包后,忙着忙着就忘掉直接去吃饭了,看着妹子 QQ 上发来各种鄙视的表情,这不是我想要的人生啊,我一定要改变在测试妹子心中的形象,所以自动化构建这件事情提上日程.
使用 Jenkins 半自动化
我直接选用了已经很成熟的 Jenkins 持续集成解决方案,至于如何配置就不做过多介绍了,网上有不少这类的文章。有了 Jenkins 后,给我带来最便利的一点就是,每次打包的时候,直接在公司的 Mac 服务器上进行操作,而我还可以继续进行手上的工作,打包完成后把 ipa 包发给测试,同时也教会了测试如何从 Jenkins 上下载已经打包好的 ipa 文件,就这样我可以随时在手机上打开公司内网的 Jenkins 打包,当我把这一切告诉测试妹子的时候,她用期望的眼神看着我说:“这是真的么。。。”
Jenkins + 蒲公英 升级
就这样用了一段时间,也没遇到什么问题,或许是比较爱折腾,我发现每次 Jenkins 打包好了之后,我还需要手动去下载,或者让测试他们下载,当测试拿到文件后,还需要将手机连到电脑用 iTunes 或者第三方工具安装文件,我想要是 Jenkins 打包完成后会自动通知测试更新并安装该多好,而且之前也听说过第三方的分发平台 “”,于是我去蒲公英网站看了一番,很高兴的是他们开放上传
APP 和安装 APP 等 API,有了这个东西,我的想法便完全可以实现了:1)Jenkins 打包 2)打包成功后 IPA 文件上传到 Tomcat 服务器 3)通过 API 把 IPA 文件传给 蒲公英 4)上传成功后把安装地址通过邮件发送给测试。 5)测试直接在手机上打开地址安装。
流程图大概像这样:
1.IPA 文件上传到 Tomcat 服务器
由于每次 Jenkins 打包的时候,编译后的文件是放在项目根目录下的 build 文件夹里面,每次 build 的时候这个文件夹内的文件都会被覆盖,所以每次 build 后我都会通过 FTP 把 IPA 文件上传到 Tomcat 上备份,同时还可以方便提供给别人下载,比如在给测试发送蒲公英的安装地址时,同时也可以给出 IPA 下载地址。
* 开启 Mac FTP-server
Mac 电脑本身是支持 FTP 服务的,只不过系统默认关闭了,&这款软件可以很方便的修改系统的一些设置,比如是否开启打开 Window 动画,是否显示用户的 Library
文件夹,其中有一个选项就是是否开启系统的 FTP-server 功能。
* 配置 Jenkins 的 FTP Server
Mac服务器支持 FTP-server 后,我在 Jenkins 上安装了&&这个插件,这个插件可以将指定的文件发送到选中的
FTP 服务器上去,安装完插件后,在 Jenkins 的系统设置中会多出一项 Publish over FTP 的设置,因为 Tomcat 和 Jenkins 是在一台电脑上,所以 Hostname 直接指向本地,Remote Directory 也直接指向 Tomcat 的 webapps 下对应 app 的目录。配置好后可以点 Test Configuration 测试一下,如果显示 success,则成功了。
* 在 Job 的设置里面指定上传到 FTP 的文件
Jenkins 配置好 FTP Server 后,接下来就需要在 Job 中去设置打包成功后把哪些文件上传到指定的 FTP Server 中去了。在 增加构建后操作步骤中 有一个 Send build artifacts over FTP 选项,这里首先需要选择我们之前配好的 FTP Server。Source files 是我们构建目录下 build 文件夹内所有的文件,Remove prefix设置为 build 是告诉插件创建路径的时候不要包含 build,Remote directory则是我们指定的
FTP Server 上需要创建的目录,这里我以 Jenkins 构建的版本号去创建文件夹,之后取文件的时候,路径便会很方便拼接。
2.通过 API 把 IPA 文件传给 蒲公英
打包成功了,并且文件也备份到 Tomcat 上去之后,接下来就需要编写脚本了,脚本需要的功能是:1)上传 IPA 文件到 蒲公英 2)发邮件通知测试。这两点通过脚本是很好实现的,已经放在 GitHub 上,如果想将脚本应用到自己的环境中,最主要的是如下这几行代码 :
uKey、file_name、_api_key、installPassword这四个值是根据自己的情况配置的。project_name的值很重要,涉及到很多地方:1)tomcat 的 webapps 目录下面要有 project_name 对应的目录,因为在获取 ipa_file_tomcat_http_url 的时候,是需要 project_name的, 还有就是获取发给蒲公英的 IPA 文件时也需要知道 project_name
接着就需要让 Jenkins 去执行这个脚本了,通过对 Jenkins 插件的搜索,找到一个叫&&的插件,功能官方介绍写的很清楚:PostBuildScript
makes it possible to execute a set of scripts at the end of the build.。
安装完这个插件后,在 Job 的 增加构建后操作步骤 中会多出一个 Execute a set of scripts 的选项,这里我只配置了 Build steps 中的 Execute shell,让它用 Python编译器去执行项目根目录下的脚本,还有就是 Execute script only if build success 勾选上:
这样当 Jenkins 打包成功后,便会执行此脚本,最终达到了我的目的。
最终收到的邮件大概是这样的:
如果是在手机上打开邮件的话,可以直接使用第三种方式:点我直接安装,这种方式最方便,其次是第二种,蒲公英在线安装,最后一种便是自己下载 IPA 包到本地,使用工具安装。
到这儿之前设想的都已经实现了,整个过程中从开发的角度来说,需要的只是点击一下 Jenkins 中的 立即构建 按钮,然后就继续做手头上的事情把!
教科书上把会不会制造工具当做人和动物的根本区别,我觉得这也是判断一个好程序员的标准之一,优秀的程序员总是会去寻找好的工具,或者自己去创造一些工具来提高自己的生产效率,他们通过工具把那些浪费在重复劳动上的时间花在了更有意义的事情上去。
任何工具出现的最初目的都是为了提高生产效率,很庆幸在 iOS 开发的这个圈子中有一大批的先驱者,他们创造并开源了很多优秀的工具,为这个环境奠定了一个良好的基础,所以在工作或生活中,多创造工具,让自己变得更懒,却更有价值!
本文已收录于以下专栏:
相关文章推荐
2.安装Jenkins
3.安装必要的插件
4.新建一个项目,选择自由风格
5.配置项目
5.1填写项目名称
5.2公司使用的是SVN,填写好仓库地址和账号密码,仓库地址需要填写...
iOS持续集成:jenkins+gitlab+蒲公英+邮件通知(Part 2)
Jenkins 系统设置 前期准备
Jenkins 插件安装
安装GitLab插件
因为我们项目用的是G...
转自:/ios/98.html
经常看到很多博文里面讲’懒惰’是一个优秀程序猿的良好品质,这一点我深...
什么是持续集成
持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动...
作为一名高效的开发者,要尽量避免的重复劳动实现自动化的流程。搭建本地jenkins服务器,实现自动化打包流程,从此测试包交给测试人员自己去打就好了,集成蒲公英等分发平台,实现二维码或短链接下载,也为运...
一.环境说明
搭建机器:一台Mac Book Pro
开发工具:XCode V7.3.1
开发环境:OS X EI Capitan 版本 10.11.5
jenkins版:V1.647
what is CI(Continuous integration)?      持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多...
看了几篇关于使用jenkins持续集成的博客,记录一下自己搭建的过程,顺便做一些更新
1. 安装Jenkins直接下载安装包:http://jenkins-ci.org
或者使用命令行...
今天用Jenkins+iOS+fir+蒲公英
搭建持续集成环境,把过程记录一下。
/p/c69deb29720d
什么是持续集成
持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就...
他的最新文章
讲师:王哲涵
讲师:王渊命
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)Jenkins详细安装与构建部署使用教程
& & & & & Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:
1、持续的软件版本发布/测试项目。
2、监控外部调用执行的工作。
本文使用的Linux:Ubuntu
其中JDK、Tomcat、SVN服务器请看这里
一、安装Jenkins
本文直接使用war包安装
下载地址:
war包有两种安装方法
下载jenkins.war, 拷贝到D:\Java\Tool\jenkins()下,然后运行java -jar jenkins.war. (注意需要先安装JDK,然后设置JAVA_HOME环境变量且将%JAVA_HOME%\bin加入到PATH环境变量中)
运行如下:
访问http://localhost:8080 , jenkins的主界面如下:
把Jenkins 1.409.1版解压,把得到的war包直接扔到tomcat下,启动tomcat,Jenkins就安装完毕,访问http://localhost:8080&
二、构建一个Maven项目
1、新建一个job
2、输入名称和项目类型
3、设置编译的版本号等信息
4、设置svn库地址:
输入项目托管的svn的地址,如果有出现要输入账号和密码的地方,输入即可。
如果有出现如下说明用户或密码不对:
点击进去重新设置用户和密码
5、配置jdk和maven
第一次打开出现如下,点击进去。要求提示设置JDK和Maven
点击系统管理-》系统设置,找到JDK和Maven的设置位置
选择本电脑的:
9、到这里已经可以构造这个项目了。
构建输出的信息:
构建成功输出如下 :
这时它已经自动把这个项目打包了一个war包,默认打包到了C:\Users\linbingwen\.jenkins\workspace\JavaWeb\JavaWeb\target
或者点击如下:
三、自动远程部署到tomcat
接下来要完成自动构建成war包后,将些war包上传到远程linux的tomcat的webapps目录,更新项目的war包,并重启tomcat.
1、安装插件
系统管理-》管理插件,在可选插件里找到下面这个,然后点击直接安装命令,安装成功后要重启jenkins
t笔者在安装插件时报错如下:
这应该是天朝的墙所导致的,所以笔者就使用了手动安装的方式。
解决方法:
到https://wiki.jenkins-ci.org/display/JENKINS/Publish+Over+SSH+Plugin,下载hpi到本地电脑到
在系统管理--管理插件--高级--浏览-上传插件即可
然后它自动上传并安装:
红色的是笔者在线安装不成功的,蓝色的是笔者安装成功的了,之后重启jenkis即可。
2、配置ssh内容:
在系统管理-》系统设置里
找到Publish over SSH
然后输入:
3、配置Post Steps
这里还是接着上面的JavaWeb项目,这个配置得安装了上面的插件后才会显示!
Transfer SetSource files:表示要上传的本地的war包及路径,可到工作空间去看
Remove prefix:表示要上传时要去除的文件夹,即只上传war包
remote driectory:即表示执行时的路径,相当于把war包上传到这里了
exec commad:要执行的命令
要执行的脚本的内容:
TOMCAT_HOME="/usr/java/tomcat/apache-tomcat-7.0.67/"
ID=`ps -ef | grep java | grep tomcat|awk '{print $2}'`
echo "kill tomcat"
kill -9 $ID
echo "remover war file"
cd "$TOMCAT_HOME"/webapps
rm -rf JavaWeb-0.0.1-SNAPSHOT
rm -rf JavaWeb-0.0.1-SNAPSHOT.war
echo "copy war to webapp"
cd /home/lin
cp JavaWeb-0.0.1-SNAPSHOT.war "$TOMCAT_HOME"/webapps
cd "$TOMCAT_HOME"/bin
echo "start tomcat"
./startup.sh
先停掉tomcat
删除webapp下对应的war包
复制war到webapps
重启tomcat
4、构建部署
点击项目的构建按钮,最终出现如下:
在linux上打开浏览器,输入http://localhost:8080/JavaWeb-0.0.1-SNAPSHOT/
注意:这里配置的ssh用户:lin要有root的权限,要不可以会报错没有权限执行kill 或rm 命令
本文使用的Linux:Ubuntu14.04
其中JDK、Tomcat、SVN服务器请看这里
转自:http://m.blog.csdn.net/article/details?id=
本文固定链接:
上一篇::
木有头像就木JJ啦!还木有头像吗?属于你的个性Gravatar头像吧!
联系@交流#合作
如有需要请邮件:
最新文章热门文章随机文章
不断的成为一个更棒的人。 08:18
喜欢这种东西
也会从眼睛里跑出来 19:15
The sunlight was very warm and comfortable while the wind suddenly broke it. 09:07
细化时间 细化变化 实现最小单位的稳定但是组合起来又是积极变化的。 09:27
生命就像一盒巧克力,结果往往出人意料。 15:33
如果你习惯了吃亏,习惯了沉默,习惯了委屈自己,习惯了不拒绝所有人,便会忘记其实你可以有态度,可以有观点,可以有能力,可以有自己从容的生活。 10:52HTTP触发Jenkins参数化构建 | 黯羽轻扬
欢迎支持ayqy个人订阅号,每周义务推送1篇(only unique one)原创精品博文

我要回帖

更多关于 jenkins post api 的文章

 

随机推荐