Jenkins Pipeline动态使用Git分支名称的技巧,可以触类旁通的那种

系统
一般成熟的项目流程都会通过 Jenkins Pipeline 来做 CI 部分,在默认 Jenkins 环境配置中,Jenkins Pipeline 分为两种:Pipeline (单分支 Pipeline)和Multibranch Pipeline (多分支 Pipeline)。

[[390118]]

前言

在上一篇 Jenkins 使用环境变量 中,帮助大家使用一条 Docker 命令就可以快速玩转 Jenkins,同时用最简单的方式解释了 Jenkins 中让人混乱的环境变量,本文还是接着变量说点事情

一般成熟的项目流程都会通过 Jenkins Pipeline 来做 CI 部分,在默认 Jenkins 环境配置中,Jenkins Pipeline 分为两种:

  • Pipeline (单分支 Pipeline)
  • Multibranch Pipeline (多分支 Pipeline)

如下图:

如果使用了多分支 Pipeline,就不会存在动态使用分支名称的问题了。如果你想使用单分支 Pipeline,又想动态使用分支,那本文就派上用场了

Jenkins 中动态使用分支名称

新建单分支 Pipeline后,可以在界面中看到 This project is parameterized , 勾选上,然后添加 String 类型的参数,如下图所示,String 类型的参数名称为 BranchName, 默认值是 master 分支

向下滚动,来配置 Jenkins Pipeline,其中在指定 Jenkins Pipeline 分支的位置,就可以使用上面刚刚创建的变量 BranchName 了,如下图所示,配置成

  1. */${BranchName} 

注意:如果勾选 Lightweight checkout 可能会出现下面的 Error

  1. stderr: fatal: Couldn't find remote ref refs/heads/${BranchName} 

以这种方式,Jenkins Pipeline 会动态根据分支名称来拉取代码,同样也可以在 Jenkinsfile 中动态使用刚刚创建好的 BranchName

  1. pipeline { 
  2.  ... 
  3.   
  4.  parameters { 
  5.   string(name'BranchName', defaultValue: 'master', description: null
  6.  } 
  7.   
  8.  stages { 
  9.   stage ('Test Branch Name') { 
  10.    steps { 
  11.     echo "${env.BranchName}" 
  12.    } 
  13.   } 
  14.  } 

当点击左侧 Build with Parameters 后,我们就可以动态输入分支名称来运行 job 了

总结

在 Jenkins 中,其实这是一种很常见的动态使用参数的方式,config 的其他参数也可以动态引用变量,大大增加灵活性,如果你要维护 JenkinsPipelie 相关的内容,你大概率会遇到这种需求,这个小技巧收入囊中吧

 

责任编辑:武晓燕 来源: 日拱一兵
相关推荐

2022-02-14 06:35:26

git参数Jenkins开发

2015-08-24 08:59:13

Git技巧

2017-03-13 16:48:05

Git技巧

2021-10-08 08:38:00

Pipelineshell命令Jenkins

2018-06-08 09:27:08

GitLinux开源

2024-02-26 00:00:00

stage函数进度

2020-05-28 10:45:31

Git分支合并

2022-08-11 15:45:13

Git

2011-03-30 10:50:55

GitLinux 版本控制

2014-08-08 10:20:23

Git版本管理系统

2013-10-09 10:04:20

LinuxGit

2020-09-06 09:55:13

git分支命令

2015-09-22 11:09:47

Java 8动态代理

2024-04-03 09:03:05

项目分支管理

2015-11-30 17:12:31

Git使用技巧

2019-09-29 10:04:26

技术编程开发

2022-05-25 16:51:41

Git 分支重命名开发者

2018-04-15 15:43:46

Git技巧命令

2023-10-09 08:39:33

Git Flow分支管理模型

2022-10-26 09:22:19

git命令Linux
点赞
收藏

51CTO技术栈公众号