持续集成工具Jenkins的构建与运行

发表于:2022-5-31 09:48

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Carl_奕然    来源:CSDN

  之前我们讲到了持续集成工具Jenkins的安装与配置,今天我们来讲Jenkins的构建与运行。

  Jenkins的构建任务
  新建任务
  我们首先需要新创建一个任务,然后再赋予一个响亮的名字。
  因为任务类型有好几种,像我们不被约束的撸码人,当然要选择FreeStyle project。因为自由风格的模板很灵活,可以根据不同口味进行配置。如下图:

  输入project名字 ,选择project风格,点击OK按钮,就创建成功了。

  丢弃旧的构建
  就是自动删除构建,因为每次构建需要保存结果和日志等东西,且都会单独进行构建,久而久之就会占用系统的空间,所以需要按照一定的规则进行清理。
  默认是不勾选保留全部构建,如果要删除,勾选CheckBox后,根据输入框提示填写信息即可:
  1、Days to keep builds(保留构建的天数):30(根据自己的项目需要填写)。
  2、Max # of builds to keep( 要保留的最大构建数量):10。

  关闭构建
  这个设置默认是不会关闭的,一般也不会关闭。除非有特殊情况需要在某一段时间关闭时,可以修改构建任务的配置,勾选该选项即可。
  安静期:安静期就是构建前的等待时间,默认会读取系统配置的构建前等待时间,如勾选并设置对应的时间,则优先读取这个位置。
  重复次数:重复次数就是当代码库获取代码失败时重新执行指定的次数,如果指定次数xxx则停止执行。

  使用自定义的工作区
  任务的目录默认是系统设置的主目录下面,如需要对任务指定目录,则可以勾选并设置其目录,这样就会优先使用这个目录。

  源码管理
  Jenkins一个重要功能就是源码管理,只要安装源码管理的插件就可以管理对应的源码。
  我们一般常用的就是 svn和git这两种,安装完插件后,只需要勾选并配置对应的源码地址、账号密码、代码分支等即可。
  默认设置:默认是none,即不使用任何管理工具,这种情况主要用于不需要修改代码的任务,比如:
  定时执行某些脚本任务
  定时执行自动化测试脚本
  git
  源码管理选择git,Repository URL填写git 仓库的地址:git@url:/home/repo/test.git 格式为:【用户名】+【@】+【git服务器地址】+【:】+【git仓库地址】,我们一般使用master作为构建的代码分支。

  Credentials有两种方式,一种是配置以git用户名和密码,另外一种是使用密钥对的方式,
  1、使用用户名和密码来配置,点击add:

  用户是拥有git仓库权限的用户,在我的git服务器上存在一个git用户,并且对该仓库拥有所有权,
  2、通过ssh密钥的方式来配置:

  首先客户机上进入用户主目录:
#创建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 * * *

  构建环境
  一般很少使用构建环境这个,仅仅了解一下即可。
  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。执行语句:
python D:\project\test.py

  配置完后进行运行就可以了。当然,这里只拿Python举例子,Java也可以的。
  Excute shell:这里Linux下执行的脚本命令,在linux系统安装Python或Java后,直接通过命令行运行即可。
  执行语句:
python /Users/pc009/desktop/project/test.py

  构建本身只是一个处理过程,如果需要多个处理可以新增多个构建,只不过构建之间会有先后顺序,执行完成上一个构建才能执行下一个。
  步骤:
  1、新增构建a执行远程部署更新测试环境;
  2、然后再新增构建b执行自动化测试脚本的运行。
  以Windows为例,使用Execute Windows batch command,第一个构建执行Python的环境部署脚本,第二个构建执行Python自动化测试脚本,多个构建命令配置,如图:

  构建后操作
  执行完构建之后,如果需要执行一些收尾工作,可以添加构建后操作,这里就介绍几个常用的构建后操作。
  bulid other projects:这是最常用的功能之一,就是完成之后执行另外一个构建任务,只需要输入已存在的项目,即可在执行完成这个构建操作后运行另外一个构建任务。
  还有3个选项是触发下一个构建的条件,分别是:
  只有构建稳定时触发
  构建不稳定也依然触发
  即便构建失败也会触发

  E-mail Notification
  发送邮件常用功能(不常用功能,我也不会说),只需要输入收件人的邮箱地址即可,因为之前系统设置已经配置过邮箱通知了。
  同时也可以输入多个收件人,通过";"间隔,同样,邮件发送功能,也是有2个选项,如下:
  每次不稳定的构建都发送邮件通知
  单独发送邮件给对方构建造成不良影响的责任人

  以上这两个构建后的操作,基本已经满足大部分的持续集成需求了。

  运行构建任务
  构建执行
  配置完成之后,保存构建任务就可以执行构建了。
  构建任务可以手动执行 和定时自动执行。这里主要说一下,手动执行构建,因为定时构建,在本章节的1.3.4 Poll SCM已经说过了。

  手动执行
  点击项目名称进入到项目,点击立即构建就可以了。

  构建后日志查询
  执行完构建后,在构建历史会有构建的状态,如:成功(蓝色●),失败(红色●)。
  点击构建记录,进入到构建记录页面,如下图:

  点击控制台输出,可以查询构建日志信息,如下图。

  点击变更记录,可以查询本次部署的内容:
  如果部署没有变更内容,则就会提示没有变化;
  如果部署有变更内容,则会列会变更的信息。

  总结
  看到这里,Jenkins的持续集成两篇博文就要接近尾声了,也说明你很有耐心呢,能把Jenkins持续集成从配置到执行构建能全看完。
  随着互联网发展,集成工具也是有好几个了,找到合适的工具才是重要的,切勿贪多。

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号