本次《jenkins Pipline 庖丁解牛》分享是结合实际工作实例讲解。

主要内容如下:

  • Pipline 语法讲解
  • Pipline 项目实战-Maven JAVA 项目构建
  • Pipline 项目实战-NodeJS 项目构建
  • 分享一个多语言构建的 Pipeline 小栗子

1. Pipline 的组成

Jenkins Pipeline(或简称为“Pipeline”,大写字母为“P”)是一套插件,支持在Jenkins中实现和集成连续交付管道

一个持续交付(CD)管道是一直到你的用户和客户的过程正从版本控制软件的自动化表达。对软件的每次更改(在源代码管理中提交)都会在发布的过程中经历一个复杂的过程。此过程涉及以可靠且可重复的方式构建软件,以及通过多个测试和部署阶段推进构建的软件(称为“构建”)。

Pipeline提供了一组可扩展的工具,用于通过管道域特定语言(DSL)语法 “作为代码”对简单到复杂的传输管道进行建模 。

Jenkins管道的定义被写入一个文本文件(称为a Jenkinsfile),该文件 又可以提交给项目的源代码控制存储库。这是“作为代码的管道”的基础; 将 CD 管道视为应用程序的一部分,以便像任何其他代码一样进行版本控制和审查。

2. 为什么要使用 pipeline ?

Pipeline 五大特性

代码: Pipeline 以代码的形式实现,通常被检入源代码控制,使团队能够编辑、审查和迭代其 CD 流程。

可持续性:Jenklins 重启或者中断后都不会影响 Pipeline Job。
停顿:Pipeline 可以选择停止并等待任工输入或批准,然后再继续 Pipeline 运行。

多功能:
Pipeline 支持现实世界的复杂 CD 要求,包括 fork/join 子进程,循环和并行执行工作的能力

可扩展:Pipeline 插件支持其 DSL 的自定义扩展以及与其他插件集成的多个选项。

3. Pipeline 的语法

- Declarative 声明式

- Scripted pipeline 脚本式

4. Pipline Declarative 格式

pipeline {agent any stages {stage('Build') { steps {sh 'echo Build'}}stage('Test') { steps {sh 'echo Test'
​}}stage('Deploy') { steps {sh 'echo Deploy'}}}
}

pipeline:代表整条流水线,包含整条流水线的逻辑。

stages 部分:流水线中多个 stage 的容器。stages 部分至少包含一个stage。

stage 部分:阶段,代表流水线的阶段。每个阶段都必须有名称。本例中,build 就是此阶段的名称。

steps 部分:代表阶段中的一个或多

5. Scripted Pipeline

Scripted Pipeline对语法的要求比较宽松,顶层可以是 node,也可以是stage。node 可以嵌套stage,stage 反过来也可以嵌套 node。典型的脚本式 Pipeline 语法如下:

node {   //node可以指定label 例如 node ('label_name') {}stage("Build") {sh 'echo Building...'}stage("Test"){sh 'echo Testing...'}
}

6. Pipline Declarative 参数详解

......

7. Pipline 支持的指令

......

静待更新,如需要详细资料私信我获取

jenkins Pipline 庖丁解牛相关推荐

  1. Jenkins+Pipline+Docker 自动部署SpringBoot项目流程

    以下所有内容 仅做日常笔记,如有错误 请自行排查 一.运行环境及版本 Ubuntu 20.x.x Docker 20.x Docker-compose 二.Jenkins安装 1.目录结构 服务器上 ...

  2. Jenkins Pipline使用SonarScanner 检查 VUE、js 项目 中遇到的Bug

    在 Jenkins 上使用 Pipline 进行集成,利用 SonarScanner 做静态代码扫描的过程中,遇到了几个问题,这里记录了一点解决办法. 在Jenkins上使用Pipline进行集成,利 ...

  3. jenkins pipeline python_【python3-4】Jenkins pipline集成参数自动化执行python脚本

    构建信息 构建名称:${PROJECT_NAME}构建结果: Successful 构建编号:${BUILD_NUMBER}触发原因:${CAUSE}部署分支:${gitBranch}构建地址:${B ...

  4. Jenkins Pipline语法

    引用自:http://baijiahao.baidu.com/s?id=1582812185263227836&wfr=spider&for=pc 引用自:https://www.cn ...

  5. jenkins pipline 用法收集

    1.下载多个项目 node {stage('clone'){dir('test1'){checkout([$class: 'GitSCM', branches: [[name: '*/master'] ...

  6. mysql_backups

    数据备份与恢复 一.备份简介         2.1 备份分类         2.2 备份工具 二.mysqldump         2.1 常用参数         2.2 全量备份       ...

  7. IPFS 二维码添加的问题

    jenkins Pipline 庖丁解牛分享资料 文档加视频 链接: https://pan.baidu.com/s/19Xjm50AyKh9beP8bdS74tA 提取码: q3u4 前段时间在知乎 ...

  8. jenkins+gradle/maven+sonar+pipline

    总结:  gradle配置接入sonar,需要在build.gradle配置中引入sonar插件,而maven不需要.  jenkins pipline maven配置:  stage('SonarQ ...

  9. Jenkins 中如何一次构建多个项目

    jenkins实用插件1-Active Choices Plugin 如果用Jenkins中的 pipeline 的话, 这个可以用jenkins pipline语法帮忙生成, 1. 同时 build ...

最新文章

  1. CentOS下ZooKeeper单机模式、集群模式安装
  2. 【技术解决方案】优化FFmpeg编码器参数设置
  3. 【JSP】web.xml配置JavaWeb项目首页
  4. Vue本地图片循环加载显示不出来,vue img标签 :src地址拼接
  5. 机器学习十大经典算法之AdaBoost
  6. HTTP协议 (七) Cookie
  7. vue添加html开启服务器_vue服务端渲染添加缓存
  8. 解读ES6 Promise
  9. mysql中XtraBackup备份工作机制
  10. 计算机专业毕业设计—351个VB管理系统源码打包(计算机专业整理)
  11. 使用selenium + pytest + allure做WBE UI自动化
  12. PC Hunter V1.4
  13. 计算机硬盘容量分配,电脑磁盘分区容量大小怎么调整
  14. Metasploit——渗透攻击模块(Exploit)
  15. Mac系统如何制作Mac U盘启动盘(更新至mac 12.6)
  16. 红帽Linux系统输入罗马数字,ps罗马数字怎么打
  17. jpg转yuv420抠图后转为jpg
  18. 响铃:入局双11营销大战,搜狗翻译宝Pro的“新生活方式”宣言
  19. iis php 缓存时间,推荐 IIS7.0下ThinkPHP提示“缓存文件写入失败!” 需要设置user的权限即可 Home/Runtime/Cache/...
  20. ebay html 如何编辑,ebay:批量编辑Brand和MPN的步骤

热门文章

  1. 麒麟服务器系统磁盘管理之lvm管理
  2. 查看mysql数据库所占内存,以及每个表所占内存
  3. C++/Qt:最小外接矩形
  4. 指针--指针的创建和指针的大小
  5. 想看懂资管行业?不清楚有哪些资管产品怎么行!
  6. Android如何配置init.rc中的开机启动进程(service)【转】
  7. Android开发固定app图标大小,Android和IOS开发图标、启动页尺寸
  8. Miktex安装宏包
  9. Python基础语法——if选择
  10. 微信小程序两种跳转页面的方法