敏捷模式下的软件开发,有个持续集成的概念,到底如何搭建一个自己的CI?
持续集成的好处:
--尽早暴露问题,减少风险:
在团队开发中,问题暴露的越早,修复代码的成本越低,成功部署的胜算就越大。持续集成高频率地编译、测试、审查、部署项目代码,这其中代码集成是主要的风险来源。要想规避这个风险,只有提早集成,持续而有规律的集成,以此来确保当前代码库的质量。
--避免重复操作,让流程自动化:
在持续集成过程,一步一步的编译、测试、审查、部署,牵扯大量重复的工作。搭建持续集成环境,可以让开发人员不再需要手动地 checkout 代码,节省大量的时间和避免不必要的压力,把精力放在更多有价值的事情上,这样也可以形成良性的循环。
--保持随时部署,简化发布流程
每日高频率的集成保证了项目随时处于可部署运行的状态,如果没有持续集成,项目发布之前将不得不手动地集成,然后花费大量精力修复集成问题,弄的团队成员疲惫不堪。
使用持续集成,帮助我们跨越频繁部署的障碍。
安装:
直接去官网下载一个对应系统的软件包。
个人比较喜欢用通用的war包。
然后运行:
java -jar jenkins.war —httpPort=8088
端口可以自己指定,默认为:8080,启动以后,浏览器中打开localhost:8088就可以访问了,第一次启动的话,把默认的插件都安装号,设置一个登陆账号就可以了。
当然我们可以用如下命令来控制jenkins:
http://localhost:8088/start
http://localhost:8088/stop
http://localhost:8088/exit
http://localhost:8088/reload
http://localhost:8088/restart
全局变量 (Configure System )
在系统配置中,可以设置全局变量,和系统变量一样,全局变量在所有job中都可以使用。“Global properties” -> “Environment variables”
参数化构建过程:
每次构建项目时都需要去修改一下配置,然后保存,再去立即构建。这样修改容易修改出错误,影响到执行脚本,且每次都要去修改配置,不容易修改,操作也比较麻烦。所以决定将Jenkins修改为参数化构建。需要安装插件:
https://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin
jenkins可以通过参数化构建,使用checkbox进行界面选择。极大方便了开发部署。参数是一次传递过去的。而且是用逗号进行分割的
需要安装插件“Extended Choice Parameter plugin”,它可以扩展参数化构建过程,直接在管理界面增加。
https://wiki.jenkins-ci.org/display/JENKINS/Extended+Choice+Parameter+plugin
在构建时候,右边多了一栏:Build with Parameters
环境变量的使用:
可以点卡链接,打开就是这个路径:http://localhost:8080/env-vars.html/
对应参数,两种使用方式
1、 直接使用公式输入有误BUILD_STATUS
2、 使用公式输入有误
发邮件:
可以使用: E-mail Notification, Editable Email Notification
通过系统管理→管理插件→可选插件,选择Email Extension Plugin插件进行安装。
对于内容,你也许注意到了 这里调用了个 ‘html.jelly’ 的模板,这是插件内置的,直接用即可。
当然也可以自己写 jelly文件, 确保放置 jenkins/home/email-template下 以供jenkins调用。
对于邮件里的参数,我们大可不用记忆,打开这个就可以了。
Archive the artifacts
构建时可能会生成多个文件,只将自己需要的文件做存档。
需要在【Post-build Actions】栏目中新增Archive the artifacts,然后在Files to archive中通过正则表达式指定成果物文件的路径。
打开项目配置-> 构建后操作 -> Archive the artifacts
在存档文件中输入需要存档的文件,多个文件以 “,“(逗号) 分割,存档文件默认路径为 WORKSPACE ,存档文件的相对路径既是 WORKSPACE 并且是以正则表达式路径、文件名去匹配需要存档的文件
我构建的 apk 存放在 WORKSPACE目录 (workspace\TestDemo),存档文件写为 */.apk
email-ext邮件通知模板
发现一个很好的邮件通知模板,如下:
Default Subject:
构建通知:$ - $ - Build # $ !
内容模版!
$-第$次构建日志$项目构建信息, 系统自动发送的信息,请勿回复
构建信息
项目名称 : $
构建编号 : 第$次构建
触发原因: $
构建状态: $
构建日志:$console
构建 Url :$
工作目录 :$ws
项目 Url :$
我们来构建一个有二维码的操作,上次我们实现了如何生成二维码:
展示二维码图片:
需要安装description setter plugin插件,构建完成后设置当次build的二维码采用HTML的img标签,将
Jenkins出于安全的考虑,所有描述信息的Markup Formatter默认都是采用Plain text模式,在这种模式下是不会对build描述信息中的HTML编码进行解析的。
Manage Jenkins -> Configure Global Security,将Markup Formatter的设置更改为Safe HTML即可。更改配置后,我们就可以在build描述信息中看到采用HTML的img标签插入的图片了。
然后将邮件里也插入二维码的信息,就可以实现分发了。
以上就是搭建一个CI服务器的过程,虽然没有面面俱到,但入手也很容易了。
领取专属 10元无门槛券
私享最新 技术干货