Jenkins流水线Job中Git分支获取和参数化

在之前的文章《 自动化部署实践(Jenkins+Git+Docker+阿里云k8s)》中,使用Jenkins实现了项目的自动化部署,当时由于Git版本分支固定,并没有对Git版本分支选择进行参数化,随着项目分支变多,在构建时需要选择Git分支

实现步骤

按照新的Job进行说明,如下

  1. 首先,确保已经安装了Git Parameter插件。如果没有安装,先从插件管理页面进行安装。

  2. 创建一个新的流水线job,进入配置页面。

  3. 在“常规”选项卡中,勾选“参数化构建过程”,然后点击“添加参数”按钮,选择“Git参数”。Jenkins流水线Job中Git分支获取和参数化_第1张图片

  4. 在“Git参数”设置中,设置名称为“BRANCH_NAME”(或其他任何名称),将“参数类型”设置为“分支”,并填写Git仓库URL。其他选项可以根据需要进行配置。

  5. 在Pipeline脚本中,通过gitParameter 定义参数,注意和步骤4中填写的信息保持一致,然后通过params.BRANCH_NAME引用选择的分支。

pipeline {
    agent any
    parameters {
        gitParameter name: 'BRANCH_NAME', type: 'PT_BRANCH', defaultValue: 'master', description: 'Select the branch to build', useRepository: '[email protected]/your-repo.git', branchFilter: 'origin/(.*)' 
    }
    stages {
        stage('Build') {
            steps {
                echo "Building branch ${params.BRANCH_NAME}"
                git branch: "${params.BRANCH_NAME}", url: '[email protected]/your-repo.git'
                // 在这里添加构建步骤
            }
        }
    }
}

  1. 点击“保存”按钮保存配置。当选择“Build With Parameters”构建项目时,会看到一个下拉菜单,其中包含Git仓库中的所有分支。
    Jenkins流水线Job中Git分支获取和参数化_第2张图片

注意事项和说明

  1. 配置后第一次选择“Build With Parameters”构建项目时,可能会获取不到分支信息。忽略该错误提示,继续执行构建,后续的构建就是正常的了Jenkins流水线Job中Git分支获取和参数化_第3张图片
  2. 关于单引号和双引号的说明

Jenkins的Pipeline使用Groovy作为脚本语言。在Groovy中,单引号(’)和双引号(")都可以用来定义字符串,但它们在处理字符串插值时存在差异。

双引号("):双引号定义的字符串支持插值。即可以在双引号字符串中使用${}来插入变量值,Groovy解析这个字符串时,它会将${}内的变量或表达式替换为实际值。例如:

def branchName = "master"
def message = "The current branch is: ${branchName}"
echo message // 输出:The current branch is: master

单引号(’):单引号定义的字符串不支持插值。即Groovy会将单引号内的字符串视为纯文本,不会对其中的${}进行解析或替换。例如:

def branchName = 'master'
def message = 'The current branch is: ${branchName}'
echo message // 输出:The current branch is: ${branchName}

你可能感兴趣的:(自动化,jenkins,git,运维)