一、Pipeline介绍

    Jenkins2.0中最大的一个特性就是Pipeline,实际使用中Pipeline已经超越了我们对jenkins本身的理解,可能在之前我们大多数把Jenkins当做是一个持续集成的工具。但是在Jenkins2.0中,Jenkins完成了CI到CD的华丽转身,而且因为Jenkins的开放性,随着一些测试plugin的加入,CT持续测试也可以在Jenkins Pipeline上实现。以及多节点的组合式任务,使得Jenkins可以实现复杂的发布流程。

Pipeline,简而言之,就是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化。

官方资料:https://jenkins.io/2.0/

1、Jenkins持续集成架构图

2、Pipeline的组成部分

①Node

     我们可以将Node称为是节点或者Agent。节点可以执行某一阶段(Stage)、某几阶段(Stage)乃至整个Pipeline,就看我们Pipeline中在哪里去定义Node。我们可以将Node作为Jenkins Master的Slave 节点来分担Master节点的构建以及执行job负载。也可以将Node当做测试、部署的专用节点。比如我们可以增加一个Ansible节点用来做自动化部署,增加 一个Jmeter节点用来做性能测试。

Stage

      我们可以将Stage称为阶段,每一个Stage为Pipeline中的一个小部分,而每个Stage中最小部分为Step。比如一个简单的持续集成Pipeline。我们可以分为两个Stage,第一个是git clone code,把最新代码拉下来,第二个为Build,即利用Ant、Maven等工具进行代码编译构建。

③Step

      我们可以把Step称为步骤,一个或者多个Step将会组成一个Stage,Step是Pipeline组成的最小单位。一个Step可以很简单,比如echo “hello”。也可以很复杂,比如sh‘’ “docker build -t jenkins:master ”。

3、Pipeline两种语法

Pipeline脚本是由Groovy语言实现

声明式Pipeline

pipeline {
agent any //定义使用哪个Node进行Job的执行
stages {
stage('Build') { //定义Build的stage
steps { //定义Build的stage下面的所有step
//
}
}
stage('Test') {
steps {
//
}
}
stage('Deploy') {
steps {
//
}
}
}
}

②脚本式Pipeline

node {               //定义使用哪个Node进行Job的执行与声明式中的Agent等同。
stage('Build') { //定义Build的stage步骤
// //定义Build的stage下面的所有step步骤
}
stage('Test') {
//
}
stage('Deploy') {
//
}
}

4、如何写Pipeline

Jenkins贴心的为我们提供了快速生成脚本的功能

①拉取代码为例

②生成Pipeline脚本

③Pipeline最佳实践

通常推荐在 Jenkins中直接从源代码控制(SCM)中载入Jenkinsfile Pipeline,这样可以对Jenkinsfile也进行分支管理以及不同版本的管理。

更多Pipeline的使用和说明请参照官方文档:https://jenkins.io/doc/book/pipeline/

DevOps之持续集成Pipeline(一)的更多相关文章

  1. 在推送提交之后阻止Azure DevOps (TFS)持续集成

    在Azure DevOps服务器上配置生成定义时,可以配置连续集成(CI)生成.每次签入或提交到源代码库时都会自动运行一个CI构建.这种机制允许开发人员启动一个自动化的过程,例如编译和部署构建.这是一 ...

  2. DevOps之持续集成SonarQube代码质量扫描

    一.SonarQube介绍       SonarQube是一个用于代码质量检测管理的开放平台,可以集成不同的检测工具,代码分析工具,以及持续集成工具.SonarQube 并不是简单地把不同的代码检查 ...

  3. DevOps之持续集成Jenkins+Gitlab

    一.什么是DevOps DevOps(英文Development(开发)和Operations(技术运营)的组合)是一组过程.方法与系统的统称,DevOps是一组最佳实践强调(开发.运维.测试)在应用 ...

  4. DevOps - CI - 持续集成(Continuous Integration)

    初见 持续集成是什么? 持续集成基础概念介绍 持续集成服务器与工具集 了解 敏捷开发中的持续集成 使用Jenkins进行持续集成 案例 gitlab+gerrit+jenkins持续集成框架 使用Ge ...

  5. 基于Jenkins Pipeline的ASP.NET Core持续集成实践

    最近在公司实践持续集成,使用到了Jenkins的Pipeline来提高团队基于ASP.NET Core API服务的集成与部署效率,因此这里总结一下. 一.关于持续集成与Jenkins Pipelin ...

  6. Jenkins Pipeline 持续集成

    Jenkins Pipeline 持续集成 Pipeline Script 执行流程 在使用Pipeline之前请确保Jenkins是2.x版本以上,并且安装了Pipeline插件. Jenkins提 ...

  7. ASP.NET Core应用程序容器化、持续集成与Kubernetes集群部署(一)(转载)

    本文结构 ASP.NET Core应用程序的构建 ASP.NET Core应用程序容器化所需注意的问题 应用程序的配置信息 端口侦听 ASP.NET Core的容器版本 docker镜像构建上下文(B ...

  8. devops持续集成,Centos7.6下gitlab+jenkins(pipeline)实现代码自动上线

    持续集成 gitlab+jenkins(pipeline)实现代码自动上线 环境准备:Centos7.6版本ip:192.168.0.13 主机名:gitip:192.168.0.23 主机名:jen ...

  9. 【下一代核心技术DevOps】:(五)微服务CI与Rancher持续集成

    1. 引言 DevOps的核心魅力是快速的持续集成交付,降低研发和实施运维之间的交互,使得传统的各种扯皮现象统统消失.最重要的是降低成本 保障产品交付可靠性. 使用Rancher作为持续集成的关键环节 ...

随机推荐

  1. 搜索框的测试checklist

    一:简单搜索输入框测试用例1:不输入任何字符,点击搜索按钮,一般搜索出网站所有的信息 2:一般搜索输入框中的有文章显示,当鼠标点击时,文章消失 3:输入全角/半角中文字符(一个字符.超长字符.已经信息 ...

  2. C++ 多文件编译简述:头文件、链接性、声明与定义

    目录 Commen Sense 头文件 链接性 static 与链接性控制 extern 与外部链接性 Reference Commen Sense C++ 在编译时对每个翻译单元(Translati ...

  3. spring实战第五版总结

  4. vue项目与node项目分离

    为了前后端分离,我们在前端和api层中间,架构了一层node层,用来做服务端渲染,来加快用户的首屏可用和对搜索引擎的友好.项目一开始放置在同一个git仓库里面,分别放在client目录和server目 ...

  5. 滚动翻页vue

    <template> <div class="home"> <div style="height:100%; width:100%;&quo ...

  6. leveldb Arena

    背景我们都知道,对于一个高性能的服务器端程序来说,内存的使用非常重要.C++提供了new/delete来管理内存的申请和释放,但是对于小对象来说,直接使用new/delete代价比较大,要付出额外的空 ...

  7. poj3761(反序表)

    题目链接:https://vjudge.net/problem/POJ-3761 题意:给出n和k,求通过k趟冒泡排序得到长为n的有序排列(元素为n个不同的数)的原排列有多少个. 思路: 先给出反序表 ...

  8. Luogu P4823 [TJOI2013]拯救小矮人

    题目 \(n^2\)的dp已经成为辣鸡做法了,%%%wch. 首先一个结论:\(a+b\)小的人在上. 这个东西我们有三种方法解决证明: 1.感性理解,\(a+b\)越大的人逃生能力越强,放在下面就越 ...

  9. POJ 2528 ——Mayor's posters(线段树+区间操作)

    Time limit 1000 ms Memory limit 65536 kB Description The citizens of Bytetown, AB, could not stand t ...

  10. 设备程序远程升级采用两种方式(优先采用IP方式)

    设备程序远程升级采用两种方式(优先采用IP方式): 采用应急广播TS流传输技术规范的消息内容表携带升级包数据.当辅助数据类型值为44时,消息内容表传输的数据为程序升级包. 采用IP方式传输升级包数据. ...