Jenkins你还不会玩,打脸不!

Posted Python测试社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins你还不会玩,打脸不!相关的知识,希望对你有一定的参考价值。


jenkins是基于java开发的一种持续集成工具,用于监控持续重复的工作,功能包括。
1.持续的软件版本发布/测试
2.监控外部调用执行项目


Jenkins其实很早之前就有了,最近火起来的原因是,大家都在关注devops,关注如何来做持续集成,持续交付,如何来做CI/CD。 Jenkins作为持续集成的工具,他其实只是一个平台或者是一个大的框架,它的工作完全就是依靠插件,也就是说你想使用什么功能,你就找到什么样的插件。


优点:
1.采用shell自定义脚本,控制集成部署环境更加方便灵活
2.精简war包中的lib包,常驻tomcat里,减少war包传输时间
3.Jenkins 用户权限管理,不让淘气鬼乱动
4.构建失败发邮件通知相关人员解决
5.自动按天备份war包,Jenkins配置备份以及版本控制化


Jenkins安装
Jenkins的安装十分简单,你可以从官网http://mirrors.jenkins-ci.org/war/latest/ 直接下载war包,使用java -jar jenkins.war,或者放到Tomcat类似的容器里运行都可以(JDK版本建议使用1.6以上来运行)。 Jenkins默认启动端口是8080,请注意端口占用。 另外,Jenkins文件其实都在~/.jenkins目录下,运行过程中你可以在这里找到你运行过的job和相应的日志文件。

首次安装,可以把插件都安装上,自己都试试看。 如果因为网络原因,插件下载失败的,可以从失败详情中把地址拷出来,下载后,以上传hpi文件的方式安装。


系统设置
安装完成的第一步,先到Blobal Tool Configuration中配置相关的环境,如JDK、MAVEN、GIT等,相应的路径设置都是设置Jenkins这台机子本地的目录。 建议把所有的配置都完善下,否则日后的运行中可能会出现一些小问题,可以试下点击? 查看帮助,还是很有用的。


Jenkins集群配置
集群配置也十分简单,就是添加slave节点的过程。 点击系统管理->管理节点->新建节点,各个配置后面都有详细的帮助说明的。
在启动方法这里推荐使用 Launch slave agents>构建Job

其实到这一步,就是jenkins的常规流程了,你可以参照创建Job选项的界面的各个配置,制定你构建计划,或者我们直接使用脚本来完成我们的构建操作(建议)选择构建Execute shell,文章末尾会附上一个完整项目的shell构建流程。


Pipeline
Pipeline字面意思就是流水线,很好用的Jenkins的一个插件,将很多步骤按顺序排列好,做完一个执行下一个。 真实的工作环境有很多job,比如先编译,然后执行静态代码检查、单元测试、然后部署服务器、服务器重启、进行ui测试等。 我们需要对这些job进行一些设置将它们的上下游关系配置好。
  
这时候Pipeline就派上用场了。 在Jenkins主页点击新建视图,然后选择Build Pipeline View,然后填写Select Initial Job,构建后的操作可以选择其他的Job,以此类推,这样一个流水线就完成了。 Pipeline提供视图界面,你可以在视图上形象地看到整个构建计划的执行流程和完成度。


Jenkins是一个强大的CI工具,虽然本身使用Java开发,但也能用来做其他语言开发的项目CI。下面讲解如何使用Jenkins创建一个构建任务。

登录Jenkins, 点击左侧的新建,创建新的构建任务。


Jenkins你还不会玩,打脸不!

跳转到如下界面。 任务名称可以自行设定,但需要全局唯一。 输入名称后选择构建一个自由风格的软件项目(其他选项不作介绍)。 并点击下方的确定按钮即创建了一个构建任务。 之后会自动跳转到该job的配置页面。
Jenkins你还不会玩,打脸不!


新建自由风格的软件项目
下图是构建任务设置界面,可以看到上方的几个选项"General", "源码管理", "构建触发器","构建环境", "构建", "构建后操作"。 下面逐一介绍。
Jenkins你还不会玩,打脸不!

General
General是构建任务的一些基本配置。 名称,描述之类的。
Jenkins你还不会玩,打脸不!

General
项目名称: 是刚才创建构建任务步骤设置的,当然在这里也可以更改。
描述: 对构建任务的描述。   
丢弃旧的构建: 服务器资源是有限的,有时候保存了太多的历史构建,会导致

Jenkins速度变慢,并且服务器硬盘资源也会被占满。 当然下方的"保持构建天数" 和 保持构建的最大个数是可以自定义的,需要根据实际情况确定一个合理的值。
其他几个选项在这里不做介绍,有兴趣的可以查看Jenkins"帮助信息", 会有一个大概的介绍。 不过这些"帮助信息"都是英文的。
Jenkins你还不会玩,打脸不!
点击右方的这些"问号"查看"帮助信息"


源码管理
源码管理就是配置你代码的存放位置。
Jenkins你还不会玩,打脸不!

源码管理
Git: 支持主流的github 和gitlab代码仓库。 因我们的研发团队使用的是gitlab,所以下面我只会对该项进行介绍。
Repository URL: 仓库地址
Credentials: 凭证。 可以使用HTTP方式的用户名密码,也可以是RSA文件。 但要通过后面的"ADD"按钮添加凭证。

Branches to build: 构建的分支。 */master表示master分支,也可以设置为其他分支。
源码浏览器: 你所使用的代码仓库管理工具,如github, gitlab.  
URL: 填入上方的仓库地址即可。
Version: 8.7   这个是我们gitlab服务器的版本。
Subversion: 就是SVN,这里不作介绍。


构建触发器
构建触发器,顾名思义,就是构建任务的触发器。
Jenkins你还不会玩,打脸不!

触发远程构建(例如,使用脚本): 该选项会提供一个接口,可以用来在代码层面触发构建。 这里不做介绍,后期可能会用到。
Build after other projects are built: 该选项意思是"在其他projects构建后构建"。 这里不作介绍,后期可能会用到该选项。

Build periodically: 周期性的构建。 很好理解,就是每隔一段时间进行构建。 日程表类似        
linux crontab书写格式。 如下图的设置,表示每隔30分钟进行一次构建。
Jenkins你还不会玩,打脸不!

周期构建
Build when a change is pushed to GitLab: 当有更改push到gitlab代码仓库,即触发构建。 后面会有一个触发构建的地址,一般被称为webhooks。 需要将这个地址配置到gitlab中,webhooks如何配置后面介绍。 这个是常用的构建触发器。

Poll SCM: 该选项是配合上面这个选项使用的。 当代码仓库发生改动,jenkins并不知道。 需要配置这个选项,周期性的去检查代码仓库是否发生改动。
Jenkins你还不会玩,打脸不!
十分钟检查一次

Jenkins你还不会玩,打脸不!
构建环境中的构建工具
With Ant: 选择这个工具,并指定ant版本和jdk版本。 这两个工具的版本我都事先在服务器上安装,并且在jenkins全局工具中配置好了。
其他选项不作介绍,同样可以查看"帮助信息" 获得使用帮助。


5.构建
选择下方的增加构建步骤。
Jenkins你还不会玩,打脸不!

增加构建步骤
可以选择的项很多。 这里就介绍"Invoke Ant" 和"Execute shell".
Eexcute shell: 执行shell命令,该工具是针对linux环境的,windows环境也有对应的工具"Execute Windows batch command"。

在构建之前,可能我们需要执行一些命令,比如压缩包的解压之类的。 为了演示,我就简单的执行  "echo $RANDOM" 这样的linux shell下生产随机数命令。
Invoke Ant: Ant是一款java项目构建工具,当然也能用来构建php
Jenkins你还不会玩,打脸不!
Ant Version: 选择Ant版本。 这个ant版本是安装在jenkins服务器上的版本,并且需要在jenkins"系统工具"中设置好。
Targets: 要执行的操作,一行一个操作任务。 以上图为例,build是构建,tar是打包。

Build File: 是Ant构建的配置文件,如果不指定,则是在项目路径下的workspace目录中的build.xml。 build.xml文件具体怎么配置,后面再细讲。
properties: 设定一些变量,这些变量可以在build.xml 中被引用。
Send files or execute commands over SSH: 发送文件到远程主机或执行命令(脚本)

Jenkins你还不会玩,打脸不!
Name: SSH Server的名称。 SSH Server可以在jenkins-系统设置中配置。
source files: 需要发送给远程主机的源文件。
Remove prefix: 移除前面的路径。 如果不设置这个参数,则远程主机会自动创建构建源 source files 包含的那个路径。
Remote directory: 远程主机目录。
Exec command: 在远程主机上执行的命令,或者执行的脚本。


6.构建后操作
构建后操作,就是对project构建完成后的一些后续操作,比如生成相应的代码测试报告。
Jenkins你还不会玩,打脸不!
邮件通知
Publish Clover PHP Coverage Report: 发布代码覆盖率xml格式的文件报告。 路径会在"build.xml"文件中定义
Publish html reports: 发布代码覆盖率的HTML报告。   
Report Crap: 发布crap报告。
E-mail Notification:  邮件通知,构建完成后发邮件到指定的邮箱。
以上配置完成后,点击保存。

最后,小编在这里祝各位" 中秋节快乐,阖家欢乐 " 20190911 22:00

本图来自猪哥大V送我的佩奇月饼,感谢我猪哥,大家可搜索"裸睡的猪"关注大V

脚本:猪圈子

图片:猪圈子

来源:猪圈子


 / END.

猪圈子


推荐理由:

致力于python爬虫系列及其他python相关经典好文集中地,以及程序员娱乐生活圈趣事分享(小编从业测试岗位四年SAAS平台+一年电商平台测试相关工作)积极分享趣事的90后关注作者后台回复【测试】【python】领取系列资料


▼长按下方↓↓↓二维码识别关注


以上是关于Jenkins你还不会玩,打脸不!的主要内容,如果未能解决你的问题,请参考以下文章

都 2021 年了,你还在用 Jenkins ?赶快看看这些替代方案吧!

都 2021 年了,你还在用 Jenkins ?赶快看看这些替代方案吧!

都2021年了,你还在用Jenkins?赶快看看这些替代方案吧!

Jenkins 学习笔记玩转持续集成与持续交付

Jenkins 也宣布弃用 JDK 8,你还在用JDK8吗

Jenkins 也宣布弃用 JDK 8,你还在用JDK8吗