jenkins web hook机制

运行jenkins任务触发方式:

  • 主动运行

  • 定时构建

    就算代码库没有更新,也会构建。

  • 通过代码库主动触发Jenkins的构建任务

jenkins向外暴露一个触发器,github或gitlab代码库提交代码的时候,可以主动触发jenkins。

需要打通通信

需要有github或gitlab权限

好处是:节省jenkins资源。

  • 定时轮询代码库

如果gitbub或gitlab无法访问jenkins,则需要更换触发策略。

Poll SCM配置,定时查询代码库,有更新才构建。

构建结果提取与远程调用jenkins api

构建结果提取

  • 通过参数提取jenkins任务构建结果 -$BUILD_STATUS

jenkins参数提取构建结果,只能看到成功或者失败。

  • Editable Email Notification插件,正则表达式匹配

提醒邮件中提取出自己想看的信息,更加灵活

利用正则表达式从log匹配测试结果

远程调用jenkins api

  • 简介

jenkins对外暴露的动作交互入口

为外部程序提供入口,可以控制jenkins

支持http协议

api接口支持用户名、密码认证

支持的典型功能:运行job、查看任务状态,返回任务编号

在搭建测试平台时,可以使用jenkins api集成jenkins

  • 调用jenkins api环境准备

创建用户

准备任务

  • 利用代码控制jenkins任务

接口自动化测试持续集成

  • 接口自动化测试项目介绍

测试接口应用:

接口功能:获取对于城市的天气预报

源码:java

协议:http

请求方法:get

自动化测试运行框架:TestNG

项目框架:Maven

开发工具:

源码位置:

  • 接口自动化测试项目源码讲解

1.py

程序代码

2.src

test

3.pom.xml

  • allure report

先在运行环境安装allure

在jenkins安装allure插件

pom.xml中引入依赖

构建过程生成report

UI自动化测试持续集成

用例业务内容:测试百度首页搜索关键词之后,跳转页面标题的正确性。

  • nosetests

http://blog.sina.com.cn/s/blog_4c7cc7fd0102xfb1.html

https://nose.readthedocs.io/en/latest/man.html

Jenkins Pipeline

借用Unix中的Pipeline思路,一种高内聚低耦合的工具。

不同的构建阶段独立显示,展示清晰。

  • 安装插件

https://blog.csdn.net/ojwftded/article/details/86521801



  • 方式1: 通过jenkins图形界面进行jenkinsfile编辑

选择sricpt

helo world演示

  • Pipeline代码放在git源码库

选择SCM

先把代码下载下来,再运行

https://blog.csdn.net/liumiaocn/article/details/86344537

Jenkinsfile语法

Pipeline最基本的部分是“step”。基本上,step告诉Jenkins 要做什么,并且作为Declarative Pipeline和Scripted Pipeline语法的基本构建块。

Pipeline支持两种语法:Declarative Pipeline(在Pipeline 2.5中引入,结构化方式)和Scripted Pipeline,两者都支持建立连续输送的Pipeline。

Declarative Pipeline

https://www.cnblogs.com/YatHo/p/7856556.html

Scripted Pipeline

  • 语法树

  • 流程控制if else

  • 流程控制try catch

  • 代码中应用配置工具,如jdk、maven

Declarative pipeline和Scripted pipeline的比较

共同点:

  两者都是pipeline代码的持久实现,都能够使用pipeline内置的插件或者插件提供的steps,两者都可以利用共享库扩展。

区别:

  两者不同之处在于语法和灵活性。Declarative pipeline对用户来说,语法更严格,有固定的组织结构,更容易生成代码段,使其成为用户更理想的选择。但是Scripted pipeline更加灵活,因为Groovy本身只能对结构和语法进行限制,对于更复杂的pipeline来说,用户可以根据自己的业务进行灵活的实现和扩展。

Blue Ocean介绍

  • 安装插件

Jenkins->系统管理->插件管理,在“可选插件”中搜索“Blue Ocean”



选中Blue Ocean,然后点击“直接安装”,等待安装完成

安装完成后回到首页会发现最左侧的列表中多了一个图标:

Jenkinsfile实战Docker应用实战演练

拉取源代码-maven打包-清理Docker环境-生成包含新包的Docker镜像-启动新的Docker镜像

Jenkins持续交付实战演练的更多相关文章

  1. Asp.Net Core&Jenkins持续交付到Windows Server

    对于Linux平台上的持续集成和持续交付可以使用Docker快捷的完成任务,但是Windows Server下却不好使用,一般来讲,windows Server下最简单的发布方式是直接手动打包发布或是 ...

  2. 使用 Docker 和 Jenkins 持续交付(新书免费获取!)

    今天没有长篇大论,给大家推荐一本新书,书名:Continuous Delivery with Docker and Jenkins.封面如图所示: 以下内容纯属凑字数 本书结合了 Jenkins 和 ...

  3. 还在手动部署jar包吗?快速掌握Jenkins安装,教你使用Jenkins实现持续交付

    Jenkins Jenkins: 开源软件项目 基于Java开发的一种持续集成工具 用于监控持续重复的工作 旨在提供一个开放易用的软件平台, 便于软件的持续集成 基于Docker安装Jenkins 与 ...

  4. SonarQube+Jenkins,搭建持续交付平台

    前言 Kurt Bittner曾说过,如果敏捷仅仅只是开始,那持续交付就是头条! "If Agile Was the Opening Act, Continuous Delivery is ...

  5. Jenkins自动化部署-----持续交付【转】

    感谢之前带领过我的leader,让我能够知道什么是好的开发方法. 在很早之前就接触过敏捷开发.什么是敏捷开发,简单来说就是让软件可靠地,快速地发布出来的一种开发方法和技巧. 而敏捷开发中有许多的实践, ...

  6. [持续交付实践] Jenkins Pipeline 高可用设计方法

    前言 这篇写好一段时间了,一直也没发布上来,今天稍微整理下了交下作业,部分内容偷懒引用了一些别人的内容.使用Jenkins做持续集成/持续交付,当业务达到一定规模的时候,Jenkins本身就很容易成为 ...

  7. [持续交付实践] Jenkins 中国用户大会参会见闻

    前言 上周日在上海召开了Jenkins中国用户大会(Jenkins User Confluence China),这应该是Jenkins在中国第一次举办吧.Jenkins的创始人Kohsuke Kaw ...

  8. 基于Jenkins的持续交付方案

    简介 Jenkins是开源的自动化编译.测试.部署的Web应用程序一个持续性交付应用 Jenkins的优势 1.Jenkins在国内的开发者中认可度较高,很多创业公司的自建持续交付系统的选择大部分都是 ...

  9. 利用jenkins和docker实现持续交付

    利用jenkins和docker实现持续交付 一.什么是持续交付 让软件产品的产出过程在一个短周期内完成,以保证软件可以稳定.持续的保持在随时可以发布的状况.它的目标在于让软件的构建.测试与发布变得更 ...

随机推荐

  1. 【springboot】给你一份Spring Boot知识清单

    目录: 一.抛砖引玉:探索Spring IoC容器 1.1.Spring IoC容器 1.2.Spring容器扩展机制 二.夯实基础:JavaConfig与常见Annotation 2.1.JavaC ...

  2. Linux命令全训练

    一.实验目的 为后续上机实验做准备,熟悉常用的Linux操作. 二.实验平台 操作系统:Ubuntu14.04 三.实验内容和要求 1.Linux系统中的常用快捷键 Tab 自动补全 上下箭头 显示历 ...

  3. Spring第一课:配置文件及IOC引入(一)

    Spring最核心的特点就是控制反转:(IOC)和面向切面(AOP) 首先作为一个Spring的项目需要导入的四个核心包,一个依赖: 四核心:core.context.beans.expression ...

  4. jQuery中的样式(七):addClass()、removeClass()、toggleClass()、hasClass()、css()、width()、height()等

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...

  5. YARN的工作过程

    yarn的工作执行流程图 1.用户向YARN中提交应用程序 2.ResourceManager为该应用程序找到一个可用的NodeManager 并分配一个Container,然后在这个Containe ...

  6. Linux系统的日志管理、时间同步、延迟命令at

    方便查看和管理 /var/log/messages ?系统服务及日志,包括服务的信息,报错等等 /var/log/secure ? ? ? ? 系统认证信息日志 /var/log/maillog ? ...

  7. 一、Git分布式版本控制系统

    1.引入 在开发一个软件项目时,本地只有几十行代码或几百行代码时还可以维护,但当代码达到一定的数量后或两三个人共同开发一个项目时,就很容易会出现代码混乱.冲突.排错难等问题.一旦开发完工以后发现整个项 ...

  8. C#新版本风格(NetCore)项目文件

    在VisualStudio中创建NetCore以上版本的项目,使用的都是新版本风格的项目文件. 和旧版本.NetFramework版本的项目文件区别: 双击项目可直接打开csproj文件进行编辑配置 ...

  9. 眼镜选款新方法,用AR+Scene技术实现3D虚拟试戴

    互联网和智慧终端的普及促进了电商的产生和蓬勃发展,而新技术的产生,则推动着电商领域的不断升级.疫情使得人们更加习惯于使用电商进行购物,但对传统的线上购物模式已经产生了一些厌倦,电商市场急需模式上的变革 ...

  10. Python习题集(十一)

    每天一习题,提升Python不是问题!!有更简洁的写法请评论告知我! https://www.cnblogs.com/poloyy/category/1676599.html 题目 如果一个正整数等于 ...