搭建一个持续集成平台

敏捷模式下的软件开发,有个持续集成的概念,到底如何搭建一个自己的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服务器的过程,虽然没有面面俱到,但入手也很容易了。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180708G1H0BA00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券