「持续集成」:Jenkins Pipeline 入门必知

「持续集成」:Jenkins Pipeline 入门必知

解决方案goocz2024-12-16 12:45:1720A+A-

「持续集成 Continuous Integration」

「持续交付 Continuous Delivery」

「持续部署 Continuous Development」

Jenkins,Jenkins Pipeline,Jenkinsfile三者之间的关系是什么?

  • Jenkins是开放的工具平台
  • Jenkins Pipeline是部署到Jenkins的工作流
  • Jenkinsfile是Jenkins Pipeline的文件包

Jenkins

基于Java语言开发,开源的,界面的友好的CI&CD工具

  1. Jenkins可以用于监控持续重复的工作;旨在提供一个开放制作的软件应用平台,使软件的持续集成变得可能
  2. Jenkins可以应用于简单的次序集成服务;或者变为任何项目的持续交付中心
  3. Jenkins可以快速的运行在多个不同的操作系统上;还可以轻松的在多台机器上分配工作;帮助跨多个平台,推动构建,测试,和部署

Jenkins Pipeline

简单来说,就是Jenkins上的工作流框架,支持实现和集成持续交付流水线到Jenkins;将原本独立运行于单个或多个节点的任务连接起来;实现单个任务难以发布的复杂流程

Jenkins Pipeline的两种语法

  • 申明式Declarative【从Pipeline 2.5开始引入,是目前主流运用的更简单,更结构化的语法,更符合阅读习惯】
  • 脚本式流水线Scripted pipeline,灵活,可拓展;但更复杂(需学习Groovy语法)

Jenkins Pipeline的优势

  1. 代码方式:Pipeline通常以代码方式实现,通常会卷入源代码;使团队能够编辑,迭代,审查传送流程。
  2. 耐用:Pipeline可以在计划或者计划外,重新启用;Jenkins管理池同时存在
  3. 可暂停:Pipeline可以或停止,或等待人工输入,或批准;然后再继续运行
  4. 多功能:Pipeline支持复杂的交互要求;包括了并行,分叉,循环工作的能力
  5. 可拓展:Pipeline支持插件式的拓展方式

Jenkins Pipeline使用方式

  • UI界面配置
  • 代码描述Pipeline(Pipeline As Code是最佳实践,将Pipeline检入源代码控制仓库)

Pipeline As Code的优势

①更好的版本化:通过代码定义的形式能往Pipeline提交软件版本,进行版本控制

②更好的协作:每次修改,对于所有人都可见;并且可以对Pipeline进行代码审查

③更好的重用:UI手动操作配置,无法重用;但是代码的方式可以非常方便的进行复用。

Jenkinsfile

  • 是包含Jenkins Pipeline定义的文本文件
  • Jenkinsfile文件不能替代现有的构建工具;应视为将项目的多个生命周期绑定在一起的粘合层

语法基础

Pipeline声明式语法基础结构

  • Pipeline字段:代表整条流水线(Tips:看见pipeline就知道是声明式语法,脚本式语法则是node)
  • Agent:代表流水线的执行位置
  • Stages:代表流水线的所有阶段(多个Stage的容器)
  • Stage:代表流水线的某个阶段
  • Steps:代表1个或多个步骤
  • 设置环境变量【environment】:pipeline块的environment是整个流水线的变量;stage中的environment只适应stage的步骤
  • 执行shell命令【sh】:可执行相对应的命令


Pipeline流水线构建语法结构:

通常流水线的构建阶段包括源代码的组装,编译或打包

构建时两个核心

  • Build代表构建阶段
  • sh步骤调用make命令
  • archiveArtifacts完成构建结果的记录和存储

Pipeline流水线测试语法结构:

  • Test代表测试阶段
  • make check 执行测试
  • junit是一个聚合测试报告的流水线step

Pipeline流水线部署语法结构:

  • Deploy代表部署阶段,只有在之前的构建,测试阶段成功后,才会进行部署;否则流水线会提前退出
  • when允许pipeline根据条件判断是否执行
  • currentBuild.result变量确定是否有任何测试失败
点击这里复制本文地址 以上内容由goocz整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

果子教程网 © All Rights Reserved.  蜀ICP备2024111239号-5