GitSCMExtension 或 GitSCM 分支源配置以在 Jenkins 多分支管道中获取 all/some 个额外的远程分支

GitSCMExtension or GitSCM branch source configuration to fetch all/some additional remote branches in Jenkins multi-branch pipeline

我一直在尝试找到 分支源 配置以至少获取 developmaster 远程分支,以及分支这项工作是 运行,成功率为零。

我的用例是根据 git 引用名称确定版本并使用 GitVersion 提交消息。到目前为止,我发现的唯一解决方法是麻烦且不可移植,因为它需要向 git cli 提供凭据,而不是 运行 针对本地 ( file:// ) 回购.

sh "git fetch origin master:master"
sh "git fetch origin develop:develop"

我是否必须编写自定义 GitSCMExtension 是否会出现此行为?

看起来远程分支 ( origin/{branch} ) 的引用实际上已被获取,只是没有创建匹配的本地跟踪分支 ( origin/{branch} -> {branch} ),这会导致 GitVersion 关闭。它产生的错误消息似乎直接与此默认配置相矛盾:

System.InvalidOperationException: Could not find a 'develop' or 'master' branch, neither locally nor remotely.

https://github.com/GitTools/GitVersion/issues/1049#issuecomment-585878737

处找到了解决方案

这是配置 GitVersion 以实际考虑 /origin/master 和 /origin/develop

  develop:
    # (..)
    regex: (^dev(elop)?(ment)?$|^origin\/dev(elop)?(ment)?$)
  master:
    # (..)
    regex: (^master$|^origin\/master$)