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. Echarts数据可视化radar雷达坐标系,开发全解+完美注释

    全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...

  2. Java简单工厂模式以及来自lambda的优化

    前言    设计模式是软件工程中一些问题的统一解决方案的模型,它的出现是为了解决一些普遍存在的,却不能被语言特性直接解决的问题,随着软件工程的发展,设计模式也会不断的进行更新,本文介绍的是经典设计模式 ...

  3. Prometheus 到底 NB 在哪里?- 每天5分钟玩转 Docker 容器技术(84)

    本节讨论 Prometheus 的核心,多维数据模型.我们先来看一个例子. 比如要监控容器 webapp1 的内存使用情况,最传统和典型的方法是定义一个指标 container_memory_usag ...

  4. 原生javascript跨浏览器常用事件处理

    var eventUntil = {             getEvent: function (event) {//获取事件                 return event ? eve ...

  5. 微信公众平台开发接口PHP SDK

    以前没接触过微信公众平台开发,前几天刚找到实习公司就要求我做一个微信公众平台的应用,于是乎开始学习微信公众平台开发接口的调用,看开发文档之后还是不知道从何入手,只好上网找入门资料,终于在方倍工作室找到 ...

  6. js获取本地ip和地区

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 本地文件与服务器文件同步shell脚本。

    #!/bin/sh read -t 30 -p "请输入项目名:" name echo -e "\n" echo "项目名为:$name" ...

  8. TIDB 参数解释

    地址:https://github.com/pingcap/docs-cn/blob/master/op-guide/configuration.md#tidb TiDB --store 用来指定 T ...

  9. 从json_encode过来的的字符串被返回到html页面时的解析

    在工作过程中经常需要向服务器请求数据.在需要返回多个值的时候,使用json_encode处理数组然后返回是很常用的做法.如果没有指定返回数据类型的情况下,默认返回的是json格式的字符串.那么需要将这 ...

  10. Leetcode题解(33)

    113. Path Sum II 题目 分析: 主要考察二叉树深度优先遍历(DFS),递归调用当前节点的左右结点即可,代码如下(copy网上): /** * Definition for binary ...