一.持续集成体系介绍

1.瀑布模型和敏捷模型

  • 瀑布模型:在之前我们项目的开发模式都是瀑布模式。项目生命周期按照需求分析>概要设计>详细设计>代码开发>测试>上线发布一步一步进行。这种模式文档完善,整个开发过程很严谨,相对比较可控。

  • 敏捷模式:敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

  • 敏捷开发导致代码提交频繁,也导致测试,部署频繁且周期更短。

2.持续集成出现背景


3.持续集成流程

4.CI,CD

  • CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。CI/CD 的核心概念是持续集成、持续交付和持续部署。作为一个面向开发和运营团队的解决方案,CI/CD 主要针对在集成新代码时所引发的问题。
  • CI/CD 中的“CI”始终指持续集成,它属于开发人员的自动化流程。成功的 CI 意味着应用代码的新更改会定期构建、测试并合并到共享存储库中。该解决方案可以解决在一次开发中有太多应用分支,从而导致相互冲突的问题。
  • CI/CD 中的“CD”指的是持续交付和/或持续部署,指的是自动将开发人员的更改从存储库发布到生产环境,以供客户使用。它主要为了解决因手动流程降低应用交付速度,从而使运维团队超负荷的问题。持续部署以持续交付的优势为根基,实现了管道后续阶段的自动化。

5.持续集成工具

推荐Jenkins

二.jenkins搭建及配置

1.docker部署(推荐)

第一步:获取Jenkins镜像

docker pull jenkins/jenkins

第二步:启动Jenkins镜像创建容器

docker run -d --name=jenkins -p 8080:8080 -p5000:5000 -v /home/ouyi/jenkins:/var/jenkins_home jenkins/jenkins
# 8080端口是Jenkins对外提供服务的端口
# 5000端口是后续持续集成使用的端口

第三步:查看jenkins的Admin初始密码

方式一:查看日志
docker logs jenkins
方式二:查看初始密码文件
docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword

第四步:登录 http:docker宿主机ip:8080 访问Jenkins网站

2.手动部署

3.配置Jenkins





三.创建你的第一个job

项目基本配置

包括任务名称,及任务风格

General

General是构建任务的一些基本配置。名称,描述之类的

源码管理

源码管理就是配置你代码的存放位置。Git支持主流的github 和gitlab代码仓库。

构建触发器

构建触发器,顾名思义,就是构建任务的触发器。

构建环境

构建环境就是构建之前的一些准备工作,如指定构建工具。

构建

构建时要执行的命令,可以使用shell,python等等

构建后操作

​ 构建后操作,就是对project构建完成后的一些后续操作,比如生成相应的代码测试报告。

任务创建完成





这里我们只是演示一个demo,对于具体的参数配置,在后面详细讲解

四.Jenkins其他常用操作及配置

1.安装插件

Jenkins支持多种插件,可以自己安装插件来达到我们的需要


2.Jenkins常见的插件介绍

  • 常用插件

BitKeeper Plugin — 为Jenkins添加BitKeeper(Linux 内核开发人员在全球使用的主要源代码工具)支持。

Visual SourceSafe Plugin — 该插件集成微软的VSS到Jenkins。

Git Plugin — 该插件允许使用GIT作为一个构建SCM(源代码控制管理系统),但必须使用Git 1.3.3及以上。

Team Foundation Server Plugin — 该插件集成了 MicrosoftTeam Foundation Server源码控制到Jenkins中。

CMVC Plugin — 该插件集成CMVC(IBM和许多跨国公司的缺陷管理工具。)到Jenkins。

File System SCM — Use File System as SCM.使用文件系统作为SCM。

StarTeam — 该插件把StarTeam(Starteam 是一个集合了版本控制和缺陷控制两种功能的软件,并且具有 CVS 没有的强大的图形界面,易学易用。2002年底被Borland公司收购。)和Jenkins集成在一起。

Subversion Plugin — 该插件增加Jenkins对svn(通过SVNKit)的支持。

Accurev Plugin — 该插件允许您在Jenkins中使用 AccuRev作为SCM。

Template Project Plugin — 该插件可以让您使用另一个项目中的构建人、发布人和SCM设置。

URL SCM — 该插件允许您使用URLs作为SCM。

Bazaar Plugin — 该插件集成Bazaar到 Jenkins,该插件需要确保Bazaar 库(bzr)已安装到目标机器上。

PVCS SCM — 该插件集成了Serena提供的PVCS SCM。

Mercurial Plugin — 该插件集成Mercurial version control system到Jenkins中。

Perforce Plugin — 该插件集成Perforce到Jenkins中。

Synergy Plugin — 该插件把CM/Synergy版本管理系统集成在Jenkins。

Dimensions — 该插件集成Dimensions SCM到Jenkins中。

ClearCase Plugin — 把ClearCase(IBM提供的版本控制系统)集成到Jenkins。

  • 跟SCM有关联的其它插件:

SVNCompat14 Plugin — 该插件强制内置SVNKit库使用Subversion 1.4工作拷贝格式(替代它最近支持的svn版本。)

Subversion Tagging Plugin —该插件在成功的构建中执行svn标签(也就是使用 svn copy)。

CVS Tagging Plugin — 该插件将在一个作业构建成功后执行cvs标签(也就是cvs rtag)。

  • 构建触发

Ivy Plugin — 该插件通过配置Apache Ivy自动化地配置一次构建并触发其有构建依赖的其他构建。

Join Plugin — 该插件允许一个作业在所有它下游的作业结束以后才开始运行它本身。

Log-Action plugin — 该插件在作业输出中按选定模式开始一系列动作,但这是一个统一的配置。

URL Change Trigger — 该网址变更触发器插件允许您当网址的内容发生变更时Jenkins触发一次构建。

Locks and Latches plugin —该插件允许你管理作业的并发执行。

IRC Plugin — 该插件在您选择的IRC 频道中安装Jenkins IRC 机器人,您可以通过IRC获得通知,并通过IRC与Jenkins互动。

Downstream-Ext Plugin — 该插件为下游触发器支持扩展配置。当前它增加一个选项,如果它们发生SCM改变时,仅仅触发下游的构建。

Jabber Plugin — 把Jabber即时消息协议集成在Jenkins中。注意您也需要安装instant-messaging 插件。

Naginator Plugin — 该插件允许您在一次构建失败后自动重建一次构建。

  • 构建工具
    Jenkins本身支持Maven、Ant、Shell脚本和Windows批处理命令。

Grails Plugin — 该插件允许Jenkins调用Grails 任务作为一个构建步骤。

PowerShell Plugin — 在Jenkins中集成Windows PowerShell。

Jython Plugin — 在JVM中增加执行Jython脚本的能力。

Post build task — 该插件允许用户依据构建日志的输出执行一个shell/批处理任务。

Ruby Plugin — 该插件允许用户在构建脚本中使用Ruby。

Gant Plugin — 该插件允许Jenkins调用Gant构建脚本作为主体构建的一个步骤。

Seleniumhq Plugin — 该插件允许您从Seleniumhq中运行和加载通过Selenium服务器生成的HTML Selenese套件结果。Jenkins将以此生成测试结果的趋势报告。

Groovy plugin — 该插件允许Jenkins直接执行Groovy代码。

Rake plugin — 该插件允许Jenkins调用Rake任务作为构建步骤。

NAnt Plugin — 该插件允许你在Jenkins中使用NAnt构建.NET项目。

Template Project Plugin — 该插件可以让您在Jenkins中使用另一个项目中的构建人、发布人和SCM设置。

Buckminster PlugIn — 该插件把Eclipse Buckminster做为一个新的构建步骤集成在Jenkins中。

Python Plugin — 添加执行Python脚本作为Jenkins的构建步骤。

SCons Plugin — 该插件允许Jenkins调用SCons构建脚本作为主体构建的步骤。

Selenium AES Plugin — 该插件能让Jenkins调用Selenium Auto Exec Server(AES) 来测试。

Kundo Plugin — 该插件允许你调用Kundo构建作为一个Jenkins构建步骤。

Gradle Plugin — 该插件允许Jenkins调用Gradle构建脚本作为主体构建的步骤。

EasyAnt Plugin — 该插件允许Jenkins调用EasyAnt构建脚本作为主体构建的步骤。.

RAD Builder Plugin — 该插件允许你调用IBM RAD7.0/7.5作为一个Jenkins构建步骤。

Phing Plugin — 该插件允许你在Jenkins中使用Phing构建PHP项目。

SCTMExecutor — 该插件允许您在Jenkins中使用Borland 的SilkCentral Test Manager 2008 R2 及以上版本。

MSBuild Plugin — 该插件允许您在Jenkins中使用MSBuild构建.NET项目。

Batch Task Plugin — 该插件增加一些不规律执行的批处理任务到项目中,诸如打包、集成、归档等等。

  • 构建封装

Xvnc Plugin — 该插件可以让您在一次构建时运行Xvnc会话。如果您的构建包括用户界面测试时需要一个可暴露的显示值这就非常方便。

ZenTimestamp Plugin — 该插件允许您在Jenkins BUILD_ID变量中自定义日期和时间模式。

VMware plugin — 该插件允许您在一次构建开始前启动VMware虚拟机,构建完成后又停止该虚拟机。

Build Secret Plugin — 让你通过一次构建上传可用的秘密文件。

M2 Release Plugin —这是一个能让您在Jenkins中使用maven-release-plugin 来执行发布功能的插件。

M2 Extra Steps Plugin — 该插件为Jenkins加入pre- 和post- 构建步骤到Maven 2类型的项目的能力。

Template Project Plugin — 该插件可以让您使用另一个项目中的构建人、发布人和SCM设置。

Locks and Latches plugin — 该插件允许您控制作业的并发执行。

Jenkins Distributed Workspace Clean plugin —该插件允许您在同一个隶属组中未使用的隶属机器来清理工作区。

Release Plugin — 该插件允许您在当一次发布构建是手动触发时,配置预前构建或后构建的执行动作。

Copy To Slave Plugin — This plugin allows to copy, to slave nodes running a job, a set of files that are required for the good execution of the job.

Setenv Plugin — 为一个项目设置环境变量,以备构建步骤引用。

  • 构建通知
    Jenkins本身支持电子邮件通知,但也有一个可扩展的电子邮件插件来支持扩展功能。

Status Monitor Plugin — 该插件能让您在Jenkins单独的屏幕上直观地显示您选定作业的状态。.

SameTime Plugin — 该插件允许您在Jenkins中使用SameTime作为构建通知。

Nabaztag Plugin — 该插件允许您在Jenkins中发布一次构建的结果到Nabaztag。

Google Calendar Plugin — 该插件允许Jenkins发布当前作业状态到谷歌日历。

JenkinsTracker — A cross-platform application that sits in your system tray and monitors Jenkins builds via its RSS feeds. See JenkinsTracker for more details. No Jenkins server config required!

TuxDroid Plugin — 该插件允许您在Jenkins发布一个构建的结果到TuxDroid(Tux Droid是一个强大的Linux玩具,它可以通过配套的软件与你电脑中的很多应用程序相关联)。

IRC Plugin — 该插件在您选择的IRC 频道中安装Jenkins IRC 机器人,您可以通过IRC获得通知,并通过IRC与Jenkins互动。

Email-ext plugin — This plugin allows you to configure every aspect of email notifications. You can customize when an email is sent, who should receive it, and what the email says.

Instant Messaging Plugin — This plugin provides generic support for IM notifications. This plugin itself is of no use. Please use one of the derived plugins like (at the moment only) Jabber !

Blame Upstream Commiters Plugin — This is a very simple plugin that adds a post build action to mail upstream commiters when a build fails.

Campfire Plugin — This plugin allows your team to setup build notifications to be sent to Campfire rooms.

The new EMailer — Merge of the Core EMailer and email-ext plugin

Twitter Plugin — This plugin posts build results to Twitter.该插件支持Jenkins发送构建报告到Twitter。

Jabber Plugin — 把Jabber即时消息协议集成在Jenkins中。注意您也需要把安装 instant-messaging plugin 。

  • 隶属(机器)激活和控制
    Jenkins本身支持通过JNLP或者命令启动隶属,以及支持尽可能保持隶属连接,或者按需连接。

SSH Slaves plugin — 该插件允许您在SSH外的隶属* nix机器上运行和管理Jenkins。

  • 构建报告
    Jenkins本身支持Junit报告和JavaDoc。

Serenitec Plugin — 在您的项目中执行Serenitec重构方案。

Violations — 该插件为checkstyle、 pmd、 cpd、 findbugs、 fxcop、 stylecop和simian等静态代码分析工具生成报告。

NUnit Plugin — 该插件允许你发布NUnit测试结果。

WebTest Presenter Plugin — This plugin publishes the reports generated by the Canoo WebTest tool for each build.

MSTest Plugin — 该插件允许您发布MSTest的测试结果。

Crap4J Plugin — This plugin reads the “crappy methods” report from Crap4J. Jenkins will generate the trend report of crap percentage and provide detailed information about changes.

FindBugs Plugin — 该插件主要收集项目模块中FindBugs(静态分析源代码中可能会出现的Bug的Eclipse插件工具)的分析结果,并以视图的方式呈现已发现的警告。

Seleniumhq Plugin — 该插件允许您从Seleniumhq中运行和加载通过Selenium服务器生成的HTML Selenese套件结果。Jenkins将以此生成测试结果的趋势报告。

Cppcheck Plugin — 该插件为CppCheck(静态的C/C++ 代码分析工具)生成趋势报告。

NCover Plugin — 该插件允许Jenkins从NCover中归档和发布.NET代码覆盖率的HTML 报告。

JDepend Plugin— 该JDepend插件是一个为构建生成JDepend 报告的插件。

Plot Plugin — 该插件为Jenkins提供通用的测绘(或图表)的能力。

Checkstyle Plugin — 该插件主要收集项目模块中Checkstyle (自动化代码检查工具)的分析结果,并以视图的方式呈现已发现的警告。

JavaNCSS+Plugin — 该插件允许您使用JavaNCSS构建报告工具。

SLOCCount Plugin — 该插件能为SLOCCount生成趋势报告,它是一个开源程序,能为超过25种不同的语言统计代码行的数量,包括C/C++、Ada、COBOL、 Fortran、SQL、 Ruby、 Python等等。

JavaTest Report Plugin — 该插件把JavaTest(一个通过Sun公司发布的TCK应用的 框架)中解析成XML结果文件,并以此方式显示它们。

Emma Plugin — 该插件在Jenkins中集成EMMA code coverage reports (检测和报告 JAVA 代码覆盖率的开源工具)。Jenkins will generate the trend report of coverage.

Warnings Plugin — This plugin generates the trend report for compiler warnings in the console log or in log files.

Gallio Plugin — 该插件允许您发布Gallio/MbUnit的测试结果。

Doxygen Plugin —该插件可发布通过Doxygen工具生成的报告。

Testability Explorer Plugin —该插件为Testability Explorer生成趋势报告,这是一个能使用字节码分析以在Java代码中寻找可测性缺陷的开放源码程序。

DRY Plugin — 该插件为像 CPD那样的重复代码检查器生成趋势报告。

Japex Plugin — 该插件为Jenkins 增加了Japex 支持,以使Jenkins 能够显示其趋势报告和其他有用的数据。

PMD Plugin — 该插件主要收集项目模块中PMD(程序代码检查工具)的分析结果,并以视图的方式呈现已发现的警告。

Selenium AES Plugin — 该插件调用Selenium Auto Exec Server(AES) 来测试。

Task Scanner Plugin — 该插件为开放任务扫描工作区文件,并生成一个趋势报告。

PureCoverage plugin — PureCoverage plugin reports coverage results from Rational PureCoverage tool (c++ coverage tool).

Gnat Plugin — 该插件允许Jenkins集成Gnat的功能来作为ADA(Ada是一种表现能力很强的通用程序设计语言,它是美国国防部为克服软件开发危机,耗费巨资,历时近20年研制成功的。)语言。

Grinder Plugin — 该插件从Grinder 执行测试中读取输出结果,并生成报告,其中包括显示每次构建的测试结果和对应的构建显示执行结果的趋势报告。

JSUnit plugin — This plugin allows you publish JSUnit test results

Cpptest Plugin — This plugin allows you publish Parasoft C++test test results.

Clover Plugin — 该插件是在Jenkins中集成 Clover code coverage reports(代码覆盖测试分析工具)。Jenkins will generate and track code coverage across time. This plugin can be used without the need to modify your build.xml.

Cobertura Plugin — 该插件允许您从Cobertura中获取代码覆盖率报告。Jenkins将生成覆盖率趋势报告。

eXtreme Feedback Panel Plugin — This plugin provides an eXtreme Feedback Panel that can be used to expose the status of a selected number of Jobs.

CppUnit Plugin — 该插件允许您发布CppUnit测试结果。

Ruby metrics plugin — 该插件添加Ruby统计报告( Rcov, Saikuro, Rails stats…)的捆绑包到Jenkins中。

  • 构件上传

SCP plugin — 该插件允许你使用SFTP (SSH)协议上传一些构件到仓库站点。

FTP-Publisher Plugin — 该插件能上传项目构件和整个目录到一个FTP服务器。

SFEE Plugin — 依赖于Collabnet Source Forge Enterprise Edition (SFEE是SourceForge发布的项目协作管理软件) 服务器验证用户并发布构件。

java.net uploader Plugin — 该插件使用java.net 任务库,以使Jenkins有能力发送构件到 java.net。

SVN Publisher — This plugin allows you to upload artifacts to a subversion repository. This is done via a delete/import of the items requested.

  • 其他构建后操作
    Parameterized Trigger Plugin — 该插件可以让你在构建完成后触发新的构建,并为这次新构建使用不同的方式指定一些参数。

Build Publisher Plugin — 该插件允许您把一个Jenkins的记录发布到另一个Jenkins中。

Post build task — 该插件允许用户依据构建日志的输出执行一个shell/批处理任务。Java regular expression are allowed.

Description Setter Plugin — 该插件为每次构建设置描述信息,它是一个基于正则表达式校验的构建日志文件。

Deploy Plugin — This plugin takes a war/ear file and deploys that to a running remote application server at the end of a build

DocLinks Plugin — 该插件允许您发布在构建步骤中创建的文档。

Subversion Tagging Plugin — This plugin performs subversion tagging (technically speaking svn copy) on successful build.

CVS Tagging Plugin — 该插件将在一个作业构建成功后执行cvs标签(也就是cvs rtag)。

CopyArchiver Plugin — 该插件的目标是从几个作业中把已归档的构件集中到一个共享目录。每个作业中只有最后一次成功构建的归档构件才会被复制。

Text-finder Plugin — 该插件是用来在工作区文件中搜索字符串。这个搜索结果可以用来标记该构建是正常或者失败。

3.设置Jenkins时区

Jenkins默认使用美国时区,我们需要更改为中国上海时区。

第一步:删除原有的Jenkins容器

docker rm jenkins

第二步:重新创建Jenkins容器,并同时指定时区

docker run -d --name=jenkins -p 8080:8080 -p50000:50000 -v /home/ouyi/jenkins:/var/jenkins_home -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai jenkins/jenkins
# -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai 指定使用亚洲上海时区

五.节点管理

  • 子节点可以是Linux,Windows,mac
  • 子节点上需要配置Java运行环境

1.使用web代理方式创建子节点





启动子节点服务器

方式1

在子节点下,双击运行.jnlp文件

方式2

在子节点执行以下命令:

可以看到子节点启动成功了

2.使用ssh代理的方式创建子节点(推荐)

前面我们讲解的是使用Java web的方式来建立节点和Jenkins的通信。这种方式不太方便,我们更多的是使用ssh的方式来连接。

我们先在Jenkins中添加子节点的用户名和密码,作为连接凭证



使用ssh的方式创建节点

3.使用子节点执行任务

4.常见问题

节点创建好,启动节点时可能会报错,不能找到/usr/local/bin/java

这是因为Jenkins连接节点需要jdk,且默认认为节点的jdk目录为/usr/local/bin/java。所以我们需要检查一下节点中java的路径,并关联到/usr/local/bin/java

which java
ln -s 实际Java路径 /usr/local/bin/java

六.Jenkins权限管理

1.用户管理

Jenkins在初始化时,会有一个admin用户。后续也可以自己添加用户

第一步:设置用户数据库

第二步:新增用户

2.用户权限管理


七.Jenkins邮件报警机制

1.下载相关插件

  • 下载Email Extension 和Email Extension Template

这两个插件是方便用户设置格式化邮件

2.系统设置邮件配置

2.1 设置jenkins地址和管理员邮箱地址


2.2 设置发件人信息



补充:qq邮箱获取授权码操作


2.3 配置构建后发送邮件


这样我们就完成了最基本的邮件发送配置,但是这种方式并不灵活,所以我们会使用邮件模板配置的方式来构建邮件发送

3.邮件模板配置方式

扩展邮件功能有两种方式:

  1. 自定义邮件模板
  2. 使用Jenkins内置模板

3.1 自定义邮件模板

  1. 先完成HTML模板文件
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
</head><body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"offset="0">
<table width="95%" cellpadding="0" cellspacing="0"style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif"><tr><td><h2><b>来自Jenkins的邮件通知</b></h2></td></tr><tr><td><br/><b style="color:#0B610B;">构建信息:</b><hr size="2" width="100%" align="center"/></td></tr><tr><td><ul><li>项目名称&nbsp;:&nbsp;${PROJECT_NAME}</li><li>触发原因&nbsp;:${CAUSE}</li><li>构建日志&nbsp;:&nbsp;<a href="${BUILD_URL}console">${BUILD_URL}console</a></li><li>单元测试报告&nbsp;:<a href="${BUILD_URL}allure/">${BUILD_URL}allureReport/</a></li><li>工作目录&nbsp;:&nbsp;<a href="${PROJECT_URL}">${PROJECT_URL}</a></li><li>测试报告下载&nbsp;:&nbsp;<a href="${PROJECT_URL}">${PROJECT_URL}lastSuccessfulBuild/artifact/allure-report.zip</a></li></ul></td></tr><tr><td><b style="color:#0B610B;">构建日志:</b><hr size="2" width="100%" align="center"/></td></tr><tr><td><textarea cols="80" rows="30" readonly="readonly"style="font-family: Courier New;width: 500px;max-width: 1000px;">${BUILD_LOG}</textarea></td></tr>
</table>
</body>
</html>

  1. 配置系统管理员邮件地址

  2. 配置Extended E-mail Notification

  1. 现在在你的job中的配置中,构建后的操作中添加Editable Email Notification:

八.Jenkins中配置git

我们在构建Jenkins任务时,可以使用git实现源码管理。及每一次运行任务都会从git上拉取我们的代码。git实现需要条件:

节点机上安装git并完成密钥配置

Jenkins上安装git插件并完成密钥配置

1.配置git密钥认证

要从git拉取代码,必须要跟git实现密钥认证。Jenkins中也是一样,我们如果想要执行Jenkins任务时,自动从git拉取代码。必须要满足一下条件:Jenkins与git实现认证,对应执行任务的节点机也需要与git实现认证。

(1)节点机配置git密钥

第一步:安装git

yum install -y git

第二步:配置密匙

  • 回到用户的主目录下,编辑文件.gitconfig

  • 使用命令生成密钥
ssh-keygen -t rsa -C "xxx@qq.com"
# -C 后面为github邮箱
# 命令执行中间需要按几次回车键
  • 进入用户主目录下的.ssh目录,查看密钥

  • 将公钥添加到github网站上

登录github》settings》SSH and GPG keys》new ssh keys

这样我们这台机器就能跟github交互了。

(2)Jenkins中配置密钥

第一步:Jenkins中安装git插件

第二步:在任意一台机器上生成对应GitHub的密钥(公钥和私钥)

第三步:将私钥添加到Jenkins中


第四步:将对应的公钥配置到github中

2.构建任务时,使用git管理源码


九.矩阵job和父子job

1.父子job

设置父子job

十.Jenkinsfile语法讲解

对于比较简单的Jenkins任务构建,我们直接在Jenkins界面设置构建配置流程即可。但是对于比较复杂的任务,这种方式将十分繁琐且难以维护。这时将Jenkins任务中的配置及流程,使用Jenkinsfile语法写入代码中,然后在git等仓库中维护我们的代码。这样可以大大方便我们维护持续集成任务。

1.declarative pipeline语法


1.1 agent字段


1.2satges,stage和step字段


1.3 post


1.4 environment


1.5 options


1.6 parameters


1.7 triggers


2.scripts pipeline语法




十一.pipeline的使用

1.简介

2.使用Jenkins任务页面输入pipeline命令




3.使用源码管理的方式获取pipeline命令文件





十二.blue ocean介绍

1.介绍



2.实战

第一步:安装blue ocean插件

第二步:选择打开blue ocean。就可以使用blue ocean来美观的显示我们的任务界面


十三.Jenkins api接口

1.简介

2.常用接口

2.1 Jenkins启动任务接口

第一步:创建一个项目

第二步:使用python脚本调用Jenkins接口,启动任务

import requests
url = 'http://用户名:密码@192.168.1.104:8080/job/automated_test_appsample/build'
res = requests.post(url)
print(res.text)

注意:使用Jenkins的post类型接口,需要在启动Jenkins时关闭csrf防御

2.2 Jenkins获取最新的任务编号

import requests
# 格式:http://用户名:密码@ip地址:端口号/job/需要查询的job名字/lastBuild/buildNumber
url = 'http://用户名:密码@192.168.1.104:8080/job/automated_test_appsample/lastBuild/buildNumber'
res = requests.get(url)
print(res.text)

结果如下:

我们看到返回了当前任务最新一次构建的编号

2.3 Jenkins查询任务状态接口

import requests
# 格式:http://用户名:密码@Jenkinsip:端口号/job/需要查询的job名/需要查询job执行的任务编号/api/json
url = 'http://用户名:密码@192.168.1.104:8080/job/automated_test_appsample/3/api/json'
res = requests.get(url)
print(json.dumps(res.json(),indent=2))

结果如下:

更多常用的api方法可以自行百度

python自动化(六)持续集成:2.Jenkins技术讲解相关推荐

  1. python 持续集成工具_持续集成工具: Jenkins学习

    持续集成工具: Jenkins学习 -- 部分内容收集自网络,如有侵权,请联系作者删除 一. 概念 在过去的开发整体流程中,是所有人写好代码之后统一进行合并(svn,git),然后进行测试,确保准发布 ...

  2. Jenkins——持续集成及Jenkins介绍和安装配置(插件,用户权限,凭据,Maven安装打包,配置tomcat用户权限)

    持续集成及Jenkins介绍和安装配置 持续集成及Jenkins介绍 软件开发生命周期 持续集成 持续集成的组成要素 持续集成的好处 Jenkins介绍 Jenkins安装和持续集成环境配置 Gitl ...

  3. 微服务容器部署与持续集成(Jenkins)

    微服务容器部署与持续集成(Jenkins) 一.微服务容器部署 1.Dockerfile 1.1 Dockerfile简介 1.2 使用脚本创建镜像 2.Docker私有仓库 2.1 私有仓库搭建与配 ...

  4. 持续集成:Jenkins邮件通知配置方法介绍

    Jenkins的邮件提醒功能主要通过Email Extension插件来实现,它是对Mailer Plugin的扩展,我在持续集成平台Jenkins配置方法介绍中简要介绍了Jenkins的邮件配置方法 ...

  5. 持续集成平台Jenkins配置方法介绍

    持续集成(Continuous integration,CI)是软件开发和发布流程中最重要的组成部分,有利于加快开发进度.Jenkins是常用的持续集成管理工具,本文将简要介绍Jenkins持续集成工 ...

  6. 【云原生 • DevOps】一文掌握持续集成工具 Jenkins

    目录 一.持续集成工具 Jenkins 介绍 1. 什么是持续集成 2. Jenkins 介绍 二.Jenkins 的安装与部署 1. 安装 Jenkins 2. 本地访问 Jenkins 3. 插件 ...

  7. 老李分享:持续集成学好jenkins之Git和Maven配置

    老李分享:持续集成学好jenkins之Git和Maven配置 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请 ...

  8. 【DevOps】持续集成环境-Jenkins安装图文版

    文章目录 前言 Jenkins的安装 1. 环境 2. 安装java 3. 下载Jenkins 4. 安装Jenkins 5. 访问测试 6. 安装插件 7. 创建管理员账号 8. 安装完成: 总结 ...

  9. 持续集成平台Jenkins:docker镜像升级

    Jenkins 2.357 及 LTS 2.361.1之后的版本要求Java 11 或者 17,如果使用的是Java 8,要升级最新版本的Jenkins,就需要升级Java JDK版本,本文记录一下如 ...

  10. Jenkin持续集成部署-Jenkins常用插件篇

    Jenkin持续集成部署-Jenkins常用插件篇 前言 1. maven插件 2. pipeline 3. SSH 4. Docker 5. Blue Ocean 6. 自定义配置JDK 前言 本篇 ...

最新文章

  1. 记录一下海上风力机机械装置
  2. spring boot启用tomcat ssl
  3. mysql 自动化运维工具_部署MySQL自动化运维工具inception+archer
  4. 将tomcat添加到服务中
  5. EBOOT跳转到NK的过程
  6. mysql中的if [not] exists
  7. 【今日CV 视觉论文速览】14 Nov 2018
  8. C#LeetCode刷题-几何
  9. Codeforces Zepto Code Rush 2014 -C - Dungeons and Candies
  10. java实体类中有枚举类型_实体类的枚举属性--原来支持枚举类型这么简单,没有EF5.0也可以...
  11. 阿里云——零基础入门语音识别——食物声音识别——代码跑通及解析
  12. 骁龙神经处理引擎(Snapdragon Neural Processing Engine)
  13. Chromium 文件下载
  14. 卡内基梅隆计算机专业,美国卡内基梅隆大学计算机学院有几个分专业?
  15. CyanogenMod12编译教程
  16. cmd命令打开文本文档_win7定时关机命令 【处置技巧】
  17. hdr_beg(host) 主机名开始
  18. 固态硬盘 每秒1.5G
  19. MATLAB 幂函数 图像增强
  20. 关于Android Launcher3相关优秀文章的记录

热门文章

  1. 微软 Windows 10 Version 2004 新功能盘点:分离Cortana,数项体验升级,抢先体验
  2. python把数据生成图表_python从Oracle读取数据生成图表
  3. 黑苹果AppleStore不能下载应用
  4. F.grid_sample采样
  5. 【个人喜好诗词之一】归去来兮辞
  6. com.homelink.android,链家-新房二手房租房
  7. 从零开始学Python【23】--线性回归诊断(第二部分)
  8. 查看服务器上Docker镜像 latest具体版本
  9. 【技术贴】自己制作支持QQ空间背景音乐的链接教程||QQ免费空间音乐外链自己上传制作教程...
  10. Zencart完美程序来了,首个Zencart模板引擎来了