关于java:Jenkins-Pipeline-动态使用分支名触类旁通的玩法值得拥有

3次阅读

共计 1009 个字符,预计需要花费 3 分钟才能阅读完成。

前言

在上一篇 Jenkins 应用环境变量 中,帮忙大家应用一条 Docker 命令就能够疾速玩转 Jenkins,同时用最简略的形式解释了 Jenkins 中让人凌乱的环境变量,本文还是接着变量说点事件

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

  1. Pipeline(单分支 Pipeline)
  2. Multibranch Pipeline(多分支 Pipeline)

如下图:

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

Jenkins 中动静应用分支名称

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

向下滚动,来配置 Jenkins Pipeline,其中在指定 Jenkins Pipeline 分支的地位,就能够应用下面刚刚创立的变量 BranchName 了,如下图所示,配置成

*/${BranchName}

留神:如果勾选 Lightweight checkout 可能会呈现上面的 Error

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

以这种形式,Jenkins Pipeline 会动静依据分支名称来拉取代码,同样也能够在 Jenkinsfile 中动静应用刚刚创立好的 BranchName

pipeline {
    ...
    
    parameters {string(name: 'BranchName', defaultValue: 'master', description: null)
    }
    
    stages {stage ('Test Branch Name') {
            steps {echo "${env.BranchName}"
            }
        }
    }
}

当点击左侧 Build with Parameters 后,咱们就能够动静输出分支名称来运行 job 了

总结

在 Jenkins 中,其实这是一种很常见的动静应用参数的形式,config 的其余参数也能够动静援用变量,大大增加灵活性,如果你要保护 JenkinsPipelie 相干的内容,你大概率会遇到这种需要,这个小技巧支出囊中吧

日拱一兵 | 原创

正文完
 0