51Testing软件测试论坛
标题:
持续集成工具Jenkins的构建与运行
[打印本页]
作者:
lsekfe
时间:
2022-6-15 10:52
标题:
持续集成工具Jenkins的构建与运行
之前我们讲到了持续集成工具
Jenkins
的安装与配置,今天我们来讲Jenkins的构建与运行。
Jenkins的构建任务
新建任务
我们首先需要新创建一个任务,然后再赋予一个响亮的名字。
因为任务类型有好几种,像我们不被约束的撸码人,当然要选择FreeStyle project。因为自由风格的模板很灵活,可以根据不同口味进行配置。如下图:
[attach]138444[/attach]
输入project名字 ,选择project风格,点击OK按钮,就创建成功了。
丢弃旧的构建
就是自动删除构建,因为每次构建需要保存结果和日志等东西,且都会单独进行构建,久而久之就会占用系统的空间,所以需要按照一定的规则进行清理。
默认是不勾选保留全部构建,如果要删除,勾选CheckBox后,根据输入框提示填写信息即可:
1、Days to keep builds(保留构建的天数):30(根据自己的项目需要填写)。
2、Max # of builds to keep( 要保留的最大构建数量):10。
[attach]138445[/attach]
关闭构建
这个设置默认是不会关闭的,一般也不会关闭。除非有特殊情况需要在某一段时间关闭时,可以修改构建任务的配置,勾选该选项即可。
安静期:安静期就是构建前的等待时间,默认会读取系统配置的构建前等待时间,如勾选并设置对应的时间,则优先读取这个位置。
重复次数:重复次数就是当代码库获取代码失败时重新执行指定的次数,如果指定次数xxx则停止执行。
[attach]138446[/attach]
使用自定义的工作区
任务的目录默认是系统设置的主目录下面,如需要对任务指定目录,则可以勾选并设置其目录,这样就会优先使用这个目录。
[attach]138447[/attach]
源码管理
Jenkins一个重要功能就是源码管理,只要安装源码管理的插件就可以管理对应的源码。
我们一般常用的就是 svn和git这两种,安装完插件后,只需要勾选并配置对应的源码地址、账号密码、代码分支等即可。
默认设置:默认是none,即不使用任何管理工具,这种情况主要用于不需要修改代码的任务,比如:
定时执行某些脚本任务
定时执行
自动化测试
脚本
git
源码管理选择git,Repository URL填写git 仓库的地址:git@url:/home/repo/test.git 格式为:【用户名】+【@】+【git服务器地址】+【:】+【git仓库地址】,我们一般使用master作为构建的代码分支。
[attach]138448[/attach]
Credentials有两种方式,一种是配置以git用户名和密码,另外一种是使用密钥对的方式,
1、使用用户名和密码来配置,点击add:
[attach]138449[/attach]
用户是拥有git仓库权限的用户,在我的git服务器上存在一个git用户,并且对该仓库拥有所有权,
2、通过ssh密钥的方式来配置:
[attach]138450[/attach]
首先客户机上进入用户主目录:
#创建ssh目录
mkdir .ssh
#创建密钥对,其中 -t rsa是指定秘钥的类型
ssh-keygen -t rsa
复制代码
假如创建的密钥对为key (私钥) 和 key.pub(公钥),上图中的key即为key文件里复制的私钥,设置好后,将key.pub里的公钥复制到服务端对该git库拥有权限的用户主目录下的./ssh/authorized_keys文件。
Subversion:类似于git的配置,勾选Subversion,输入svn地址,输入URL和对应的账号密码就OK了。
构建触发器
配置完代码管理后,就是最关键的一步,构建触发器。
一切的构建脚本都需要满足触发器设置的条件才能执行。也就是说不设置触发器,就不会执行后续的构建的,我们先来看看触发器的类型,都有哪些:
触发器远程构建
在其他项目构建后构建
定期构建
Poll SCM
触发远程构建:这个触发器需要远程脚本或者命令触发,和手动执行是一样的,所以除非特殊情况,一般不会使用。
在其他项目构建后构建:完成某个构建任务之后执行这个构建,如同流水线的先后排序,只有完成上一步构建后,才能触发下一个任务,适用于多个关联构建任务。
定期构建:定期构建,也叫定时构建,类似于crontab脚本的配置,可以指定构建的时间,比如:每天早上8点执行或者每周一早上9点执行。
Poll SCM:这也是一个定时触发构建,与定期构建的区别在于:
Poll SCM :定时检查检查源代码是否更新,只有更新了代码才会触发。
定期构建:只是定时执行,不判断代码是否更新。
都是通过日程表的配置来完成,日程表需要填入5个数值,分别是:分钟、小时、天、月、星期,并通过tab键进行分隔。
举个例子:
每20分钟进行构建一次 :20 * * * *
每天10点进行构建 :0 10 * * *
每天10点 - 18点每2个小时进行构建一次:0 10-18/2 * * *
[attach]138451[/attach]
构建环境
一般很少使用构建环境这个,仅仅了解一下即可。
Delete workspace before build starts:构建之前清理工作空间
Abort the build if it’s stuck:勾选之后如果构建出现问题,则终止构建
Add timestamps to the Console Output:给控制台输出增加时间戳
Inspect build log for published Gradle build scans:检查已发布的Gradle构建扫描的构建日志
设置构建
这个部分是Jenkins的核心,所有的任务都是通过构建完成的,可以根据需求建立一个或者多个任务,还需要点击增加构建步骤即可。这里咱主要介绍两种:
Execute
Windows
batch command
Excute
shell
Execute Windows batch command:这个是执行Windows下的命令,类似于在计算机端输入cmd。执行语句:
[attach]138452[/attach]
配置完后进行运行就可以了。当然,这里只拿Python举例子,Java也可以的。
Excute shell:这里Linux下执行的脚本命令,在linux系统安装Python或Java后,直接通过命令行运行即可。
执行语句:
python /Users/pc009/desktop/project/test.py
复制代码
[attach]138453[/attach]
构建本身只是一个处理过程,如果需要多个处理可以新增多个构建,只不过构建之间会有先后顺序,执行完成上一个构建才能执行下一个。
步骤:
1、新增构建a执行远程部署更新测试环境;
2、然后再新增构建b执行自动化测试脚本的运行。
以Windows为例,使用Execute Windows batch command,第一个构建执行Python的环境部署脚本,第二个构建执行Python自动化测试脚本,多个构建命令配置,如图:
[attach]138454[/attach]
构建后操作
执行完构建之后,如果需要执行一些收尾工作,可以添加构建后操作,这里就介绍几个常用的构建后操作。
bulid other projects:这是最常用的功能之一,就是完成之后执行另外一个构建任务,只需要输入已存在的项目,即可在执行完成这个构建操作后运行另外一个构建任务。
还有3个选项是触发下一个构建的条件,分别是:
只有构建稳定时触发
构建不稳定也依然触发
即便构建失败也会触发
[attach]138455[/attach]
E-mail Notification
发送邮件常用功能(不常用功能,我也不会说),只需要输入收件人的邮箱地址即可,因为之前系统设置已经配置过邮箱通知了。
同时也可以输入多个收件人,通过";"间隔,同样,邮件发送功能,也是有2个选项,如下:
每次不稳定的构建都发送邮件通知
单独发送邮件给对方构建造成不良影响的责任人
[attach]138456[/attach]
以上这两个构建后的操作,基本已经满足大部分的持续集成需求了。
运行构建任务
构建执行
配置完成之后,保存构建任务就可以执行构建了。
构建任务可以手动执行 和定时自动执行。这里主要说一下,手动执行构建,因为定时构建,在本章节的1.3.4 Poll SCM已经说过了。
手动执行
点击项目名称进入到项目,点击立即构建就可以了。
[attach]138457[/attach]
构建后日志查询
执行完构建后,在构建历史会有构建的状态,如:成功(蓝色●),失败(红色●)。
点击构建
记录
,进入到构建记录页面,如下图:
[attach]138458[/attach]
点击控制台输出,可以查询构建日志信息,如下图。
[attach]138459[/attach]
点击变更记录,可以查询本次部署的内容:
如果部署没有变更内容,则就会提示没有变化;
如果部署有变更内容,则会列会变更的信息。
[attach]138460[/attach]
总结
看到这里,Jenkins的持续集成两篇博文就要接近尾声了,也说明你很有耐心呢,能把Jenkins持续集成从配置到执行构建能全看完。
随着
互联网
发展,集成工具也是有好几个了,找到合适的工具才是重要的,切勿贪多。
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2