git如何切换分支_如何让 Jenkins 支持选择 git 分支进行构建

Prerequisite

必须先在 Jenkins 上安装:

  • Git Plugin
  • Git Parameter Plugin

配置

如果没使用 Jenkins Pipeline

可以直接看 插件文档 指引,为了方便方便阅读,搬运至此

5b978a625d10c34a9abe6099e1d61154.png

5b978a625d10c34a9abe6099e1d61154.png

效果如下:

e06e87fef89c3adbd88c3c0867401fa3.png

如果使用 Jenkins Pipeline

这里,插件文档就不适用了,因为,一般来说我们会直接在 Jenkins 上直接配置 SCM,如仓库地址、用户凭据

所以我们的脚本应该直接复用 SCM 的配置,正确脚本应该是:

properties([
    parameters([
		// 添加参数设置
        gitParameter(branch: '',
            branchFilter: 'origin/(.*)',
            defaultValue: 'master', // default value 必填
            description: '',
            name: 'REVISION',		// 变量名,因为我们可能支持不同类型,不仅仅是 branch,revision 名字更适合
            quickFilterEnabled: false,
            selectedValue: 'NONE',
            sortMode: 'NONE',
            tagFilter: '*',
            type: 'PT_BRANCH_TAG'), // 其他类型 PT_TAG 列出 tag,PT_BRANCH 列出分支,PT_REVISION 列出所有 commit,PT_PULL_REQUEST 列出 PR
		...
		...
    ])
])

  def myRepo = checkout([$class                           : 'GitSCM',
                         branches                         : [[name: "${params.REVISION}"]], // 传入分支
                         doGenerateSubmoduleConfigurations: false,
                         extensions                       : [],
                         gitTool                          : 'Default',
                         submoduleCfg                     : [],
                         userRemoteConfigs                : scm.userRemoteConfigs // !重要,复用我们在 Jenkins 上 SCM 配置,如凭据、仓库地址
  ])

关键在于,把 scm.userRemoteConfigs 传给 checkout 步骤

更多高级配置详见插件文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值