当前位置: 首页 > news >正文

jenkins pipeline详解

jenkins声明式pipeline

1、什么是pipeline

  • pipeline是jenkins的核心功能,提供一组可扩展的工具

  • 通过pipeline的DSL语法可以完成简单到复杂的交付流水线实现

  • 声明式是jenkins流水线更友好的特性。

  • jenkins可以定义jenkins的执行步骤

2、为什么使用pipeline

img

本质上,jenkins是一个自动化引擎,它支持许多自动模式。流水线向Jenkins添加了一组强大的工具,支持用例、简单的持续集成到全面的持续交付流水线。 通过对一系列的发布任务建立标准的模板,用户可以利用更多流水线的特性,比如:

  • 代码化: 流水线是在代码中实现的,通常会存放到源代码控制,使团队具有编辑、审查和更新他们项目的交付流水线的能力。
  • 耐用性:流水线可以从Jenkins的master节点重启后继续运行。
  • 可暂停的:流水线可以由人功输入或批准继续执行流水线。
  • 解决复杂发布: 支持复杂的交付流程。例如循环、并行执行。 可扩展性: 支持扩展DSL和其他插件集成。

pipeline整体结构

jenkinsfile使用2种不同的语法编写,分别是声明式和脚本式

  • 声明式和脚本式的流水线从根本上是不同的。
  • 声明式是jenkins流水线更友好的特性。
  • 脚本式的流水线语法,提供更丰富的语法特性。
  • 声明式流水线使编写和读取流水线代码更容易设计。

一个完整的声明式pipeline的整体结构如下图:

  • 实线是必须的

  • 虚线是可选的

img

一个声明式pipeline的基本示例:

#!groovy
String workspace = "/var/lib/jenkins"
pipeline {agent {node {   // 选择一个节点 标签带有 masterlabel "master"customWorkspace "$workspace"}}options {timestamps() //日志会有时间skipDefaultCheckout() //删除隐式checkout scm语句disableConcurrentBuilds() //禁止并行,禁止一次执行多个任务,前一个任务执行完后,才能执行下一个任务timeout(time: 1, unit: 'HOURS')}triggers {}parameters {}environment {}tools {}stages {//下载代码stage("GetCode"){   //为阶段指定名称steps{  //步骤timeout(time:5,unit:"MINUTES"){script{ //具体的运行代码println('获取代码')}}}}//构建stage("Build"){steps{timeout(time:20, unit:"MINUTES"){script{println('应用打包')}}}}//代码扫描stage("CodeScan"){steps{timeout(time:30, unit:"MINUTES"){script{print("代码扫描")}}}}}post {always {script {println("always")}}success {script {currentBuild.description = "\n 构建成功!"}}failure {script {currentBuild.description = "\n 构建失败!"}}aborted {script {currentBuild.description = "\n 构建取消!"}}}}
http://www.jsqmd.com/news/645397/

相关文章:

  • 思源宋体TTF完全指南:7种字重免费商用,设计师必备字体
  • 浮标式水质监测微站种类、参数选型考虑因素 - 品牌推荐大师
  • 算法——找规律
  • TSMaster进阶技巧—Python外部库的安装与实战应用
  • WINFORM - DevExpress -> 从安装到实战:DevExpress控件全攻略
  • 告别2秒尴尬!用ESP32-S3+百度流式语音识别,打造能聊天的智能语音助手(附完整代码)
  • 黑苹果休眠问题终极解决指南:从无法唤醒到完美睡眠的完整方案
  • 2026年打孔针辊十大品牌实力排名:鑫辰机电登顶,引领精密打孔新时代 - 安互工业信息
  • 2026年六西格玛培训机构排行榜 - 众智商学院官方
  • Python实战:如何用NumPy快速计算离散曲线的曲率和倾角(附完整代码)
  • 终极免费方案:一键重置Navicat Premium试用期完整指南
  • 3D打印+废旧玩具改造:零成本打造Arduino循迹小车的创意方案
  • 不止于CTF:Audacity在安全研究中的另类用法,从DTMF解码到信号分析
  • 专业级TIDAL音乐下载工具完整指南:tidal-dl-ng深度解析与实战配置
  • 3步解锁:ncmdump让你的音乐收藏重获自由
  • 2026年金属表面处理一站式方案对比:天新表面、常州新美、杰昌五金、森源化工深度横评与官方联系指南 - 精选优质企业推荐榜
  • 多场景商用咖啡机怎么选?2026 办公室酒店书店通用款咖啡机推荐 - 品牌2026
  • STM32F4驱动ST7789屏幕避坑指南:从SPI配置到进度条动画的5个常见问题与解决
  • 如何将网页小说转为EPUB电子书:WebToEpub完整指南
  • 撕下“假世界模型”的伪装:别再把“死记硬背”当成物理规律了!
  • Fan Control终极指南:如何用免费软件彻底掌控电脑风扇噪音
  • 【图像分割】基于matlab模糊局部信息c-均值FLICM图像分割【含Matlab源码 15327期】
  • Anthropic研究揭秘:潜伏在代码里的“双面间谍”会欺骗人类吗?
  • 惠州汽车座椅骨架冲压模胚加工厂家 - 昌晖模胚
  • Qt5.14.2+VS2019 构建套件(Kit)黄色感叹号排查与修复全指南
  • 别光看跑分!从真实项目出发,聊聊DeepSeek V3.2和Qwen3 Max的落地体验与成本账
  • Windows11下Docker Desktop与K8S环境搭建:从镜像构建到Dashboard部署全流程
  • 如何高效管理TIDAL音乐库:tidal-dl-ng全功能使用指南
  • 保姆级教程:在Ubuntu 22.04上用ROS2 Humble给PiPER机械臂做手眼标定(附完整命令与避坑点)
  • 陵水三才旺季木材店:三亚工地用材回收厂家 - LYL仔仔