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

三、Jenkinsfile 的使用

上面讲过流水线支持两种语法,即声明式和脚本式,这两种语法都支持构建持续交付流水线。并且都可以用来在 Web UI 或 Jenkinsfile 中定义流水线,不过通常将 Jenkinsfile 放置于代码仓库中(当然也可以放在单独的代码仓库中进行管理)。

创建一个 Jenkinsfile 并将其放置于代码仓库中,有以下好处:

  • 方便对流水线上的代码进行复查/迭代;
  • 对管道进行审计跟踪;
  • 流水线真正的源代码能够被项目的多个成员查看和编辑。

一、环境变量

静态变量

Jenkins 有许多内置变量可以直接在 Jenkinsfile 中使用,可以通过 JENKINS_URL/pipeline-syntax/globals#env 获取完整列表。目前比较常用的环境变量如下:

  • BUILD_ID:当前构建的 ID,与 Jenkins 版本 1.597+中的 BUILD_NUMBER 完全相同;
  • BUILD_NUMBER:当前构建的 ID,和 BUILD_ID 一致;
  • BUILD_TAG:用来标识构建的版本号,格式为:jenkins- J O B N A M E − {JOB_NAME}- JOBNAME{BUILD_NUMBER},可以对产物进行命名,比如生产的 jar 包名字、镜像的 TAG 等;
  • BUILD_URL:本次构建的完整 URL,比如:http://buildserver/jenkins/job/MyJobName/17/;
  • JOB_NAME:本次构建的项目名称;
  • NODE_NAME:当前构建节点的名称;
  • JENKINS_URL:Jenkins 完整的 URL,需要在 System Configuration 设置;
  • WORKSPACE:执行构建的工作目录。

上述变量会保存在一个 Map 中,可以使用 env.BUILD_ID 或 env.JENKINS_URL 引用某个内置变量:

Jenkinsfile (Declarative Pipeline)
pipeline {
   
   agent any
   stages {
   
      stage('Example') {
   
         steps {
   
            echo "Running ${
   env.BUILD_ID} on ${
   env.JENKINS_URL}"
         }
      }
   }
}

对应的脚本式流水线如下:

Jenkinsfile (Scripted Pipeline)
node {
   
   echo "Running ${
   env.BUILD_ID} on ${
   env.JENKINS_URL}"
}

除了上述默认的环境变量,也可以手动配置一些环境变量:

http://www.dtcms.com/a/111879.html

相关文章:

  • 数字人代言人如何提升品牌信任度?
  • [C/C++]文件输入输出
  • 【YOLO系列(V5-V12)通用数据集-电梯内电动车检测数据集】
  • Temu物流成本或上涨?南非海关140项减免取消倒计时
  • 明清两朝全方位对比
  • 计算机视觉算法实战——基于YOLOv8的汽车试验场积水路段识别系统
  • SpringMVC+Spring+MyBatis知识点
  • Buildroot与Yocto介绍比对
  • 【MySQL】常用SQL--持续更新ing
  • Linux make与makefile 项目自动化构建工具
  • 26考研——排序(8)
  • 每日算法-250404
  • 南京大学与阿里云联合启动人工智能人才培养合作计划,已将通义灵码引入软件学院课程体系
  • Swift LeetCode 246 题解:中心对称数(Strobogrammatic Number)
  • Maven的下载配置及在Idea中的配置
  • 【云计算互联网络】 专线、VPN与云网关技术对比
  • Vue2 组件创建与使用
  • TDengine 中的视图
  • Spring Boot 可扩展脱敏框架设计全解析 | 注解+策略模式+模板方法模式实战
  • Python Requests 库终极指南
  • Redis-13.在Java中操作Redis-Spring Data Redis使用方式-操作哈希类型的数据
  • 免费内网穿透方法
  • LocaDate、LocalTime、LocalDateTime
  • 如何设计好一张表
  • LLM 性能优化有哪些手段?
  • 软件工程面试题(二十七)
  • 硬件电路(23)-输入隔离高低电平有效切换电路
  • MYOJ_4342:(洛谷P1087)[NOIP 2004 普及组] FBI 树(二叉树实操,递归提高)
  • SQL Server数据库异常-[SqlException (0x80131904): 执行超时已过期] 操作超时问题及数据库日志已满的解决方案
  • Arduino示例代码讲解:Ping