Pipeline在Jenkins里的作用

最近一直在使用jenkins进行自动化部署的工作,开始觉得很爽,省去了很多重复的工作,它帮助我自动拉服务器的代码,自动还原包包,自动编译项目,自动发布项目,自动打包镜像,自动上传仓库,自动启动docker服务,这一系列动作都是自动化的,听起来确实很绚,但是,如果项目多了,要进行管理和调整也挺麻烦的,而且修改记录是没有的,不可追踪,而就在这时候,pipeline出现了,它就是jenkins部署的代码方式,它使用groovy脚本编写,有了它,就不用使用jenkins向导了,有了它,你的jenkins变更就可以追踪了(因为它的文件可以放在git,svn上)

优点

事实上groovy脚本类似于一个json文件,你可以在里面定义jenkins的节点(分发节点,负载均衡,一台服务器肯定扛不住),编写CI、CD的每个步骤,编译项目,测试项目,打包项目,启动项目,发邮件通知,总之,你用jenkinsUI向导可以实现的,用pipeline都可以实现!

groovy的脚本编写种类有有声明风格和脚本风格两种,根据个人喜好去选择!

从代码中分析语法

@Library('common-library') _   //引用一个外部类型

pipeline{
agent any //声明全局分发节点 environment {//声明全局变量
imageName = "svt/test"
serviceName = "svt-test"
} stages{ //定义构建的步骤
stage('CI'){//步骤1,名称为CI,自定义即可
agent {label 'build'}//指定一个分发节点
steps{//CI步骤里的具体动作
cleanWs()
gitScm("${repoUrl}","${branch}","${credentialsId}")//从git上拉一个代码下到build节点
}
//把这个项目在docker提供的aspnetcore镜像里运行
dir("${deployPath}") {
sh "docker run --rm --tty --user root -v ${WORKSPACE}/:/src/ --workdir=/src/deploy/ microsoft/dotnet sh publish.sh"
buildImage("${imageName}")
}
}
} stage('ServiceRun'){
agent {label 'svt'}//启动docker服务的节点
steps{
startService("${serviceName}","${imageName}")//启动服务
}
}
}

通过上面的代码介绍,大家应该对jenkins pipeline有一个了解了,事实上,它和gitlab的pipeline非常类似,都是一个流程,从上到下的运行!

在互联网高度发展的今天,大叔觉得,掌握一个CI、CD工具非常必要!

感谢各位的阅读!

jenkins~管道Pipeline的使用,再见jenkinsUI的更多相关文章

  1. jenkins~管道Pipeline里使用公用类库

    Pipeline使用了groovy语法,同时可以使用所有jenkins插件在groovy里进行调用,可以说通过UI可以实现的功能使用pipeline也可以实现,这一点我在上一篇文章里已经说明,今天主要 ...

  2. Jenkins流水线(pipeline)实战之:从部署到体验

    关于Jenkins流水线(pipeline) Jenkins 流水线 (pipeline) 是一套插件,让Jenkins可以实现持续交付管道的落地和实施. 关于blueocean Blue Ocean ...

  3. [Linux] 流 ( Stream )、管道 ( Pipeline ) 、Filter - 笔记

    流 ( Stream ) 1. 流,是指可使用的数据元素一个序列. 2. 流,可以想象为是传送带上等待加工处理的物品,也可以想象为工厂流水线上的物品. 3. 流,可以是无限的数据. 4. 有一种功能, ...

  4. Android OpenGL ES(二)OpenGL ES管道(Pipeline) .

    大部分图形系统都可以比作工厂中的装配线(Assemble line)或者称为管道(Pipeline).前一道的输出作为下道工序的输入.主CPU发出一个绘图指令,然后可能由硬件部件完成坐标变换,裁剪,添 ...

  5. 在Jenkins管道中添加Webhook

    你有没有尝试过在Jenkins中添加GitHub webhook?在这篇博客中,我将演示在您的管道中添加webhook的最简单方法. 首先,什么是webhook?webhook的概念很简单.webho ...

  6. [转]利用Jenkins的Pipeline实现集群自动化部署SpringBoot项目

    环境准备 Git: 安装部署使用略. Jenkins: 2.46.2版本安装部署略(修改jenkins执行用户为root,省得配置权限) JDK: 安装部署略. Maven: 安装部署略. 服务器免密 ...

  7. [并发并行]_[线程模型]_[Pthread线程使用模型之一管道Pipeline]

    场景 1.经常在Windows, MacOSX 开发C多线程程序的时候, 经常需要和线程打交道, 如果开发人员的数量不多时, 同时掌握Win32和pthread线程 并不是容易的事情, 而且使用Win ...

  8. 远程触发Jenkins的Pipeline任务

    场景 虽然能配置提交代码时触发Jenkins任务,但有时并不需要每次提交代码都触发,而是仅在有需要时才执行. 除了在Jenkins页面上手动执行任务,还可以向Jenkins网站发起HTTP请求,触发指 ...

  9. 远程触发Jenkins的Pipeline任务的并发问题处理

    前文概述 本文是<远程触发Jenkins的pipeline任务>的续篇,上一篇文章实战了如何通过Http请求远程触发指定的Jenkins任务,并且将参数传递给Jenkins任务去使用,文末 ...

随机推荐

  1. 由String的构造方法引申出来的java字符编码

    在String类的constructors中,有一个constructor是将int数组类型转化为字符串: int[] num = {48,49,50,51,52}; String numStr = ...

  2. 【JDK1.8】JDK1.8集合源码阅读——总章

    一.前言 今天开始阅读jdk1.8的集合部分,平时在写项目的时候,用到的最多的部分可能就是Java的集合框架,通过阅读集合框架源码,了解其内部的数据结构实现,能够深入理解各个集合的性能特性,并且能够帮 ...

  3. 不使用数据结构反转栈 递归 CVTE实习 CVTE是一家什么公司

    本文因为垃圾csdn标题字限制,标题写不好.本文想说一个算法,和我在CVTE的实习,我看到CVTE是一家什么公司.如果想要喷我的,可以留言,我不会理.如果想喷公司,可以在博客评论或发到我邮件linde ...

  4. redis数据类型和应用场景

    Redis是什么?两句话可以做下概括: 1. 是一个完全开源免费的key-value内存数据库 2. 通常被认为是一个数据结构服务器,主要是因为其有着丰富的数据结构 strings.map. list ...

  5. 自学spring AOP

    本人是一个编程新手也是第一次写博客 这篇文章是我结合网上的资料和一些书籍学的 如果有不对之处请留言告知 本文介绍了AOP的两个知识点 1: 代理 代理有两种 我先写:Java静态代理 1:建立一个接口 ...

  6. Mapper 动态代理方式

    Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法. Mapper接口开发 ...

  7. RabbitMQ 笔记-工作队列

    工作队列的主要思想是不用等待资源密集型的任务处理完成, 为了确保消息或者任务不会丢失,rabbitmq 支持消息确信 ACK.ACK机制是消费者端从rabbitmq收到消息并处理完成后,反馈给rabb ...

  8. .NET程序集引用COM组件MSScriptControl所遇到的问题

    问题描述:为了在C#中执行js脚本,在一个目标平台编译为Any Cpu的.NET程序集中引用了MSScriptControl组件,在winform程序中,调用这个程序集中的执行js的方法,没有任何问题 ...

  9. 优先队列(存储结构数组)--Java实现

    /*优先队列--是对队列的一种改进 *要存储的数据存在优先级--数值小的优先级高--在队头 *优先队列的实现 *1.数组:适合数据量小的情况(没有用rear+front实现) *优先队列头在items ...

  10. 最近折腾老机器:还是 Xp 最好!

    闲来无事,折腾机器. -------------------------------------------------------------- 硬件: CPU:amd x2450 Memory:6 ...