詹金斯 - 如何建立一个特定的分支

ffx*_*sam 87 git github jenkins

这并不像只进行参数化构建那么简单.我已经有了一个特定的构建过程,只要将任何这些分支推送到GitHub,它就会构建和部署:

在此输入图像描述

所以,如果我只是推动develop并成功构建,我该如何触发手动构建并将其拉出feature/my-new-feature(不做git push)?我尝试启用参数化构建,添加一个名为的新字符串branch,然后添加一个新的分支说明符,*/$branch.然后我运行了一个构建并设置branchfeature/my-new-feature仍然从中拉出来develop.

我很感激任何帮助!

Ran*_*h's 89

最佳解决方案可以是:

通过在现有作业中添加新的字符串参数 在此输入图像描述

然后在Source Code Management部分更新Branches to build中使用定义的字符串参数在此输入图像描述

这将允许jenkins作业使用默认分支,master而对于手动构建,它将要求您输入分支详细信息(仅供参考:默认设置为master)在此输入图像描述

  • @Liam根据错误故障单中的建议,您需要取消选中"轻量级结帐"才能使其正常工作. (9认同)
  • 我的上帝,那太糟糕了.詹金斯为什么不用它适用的该死的Git仓库保留`Branches to build`部分?这是一个愚蠢的PITA,必须指定一个分支来构建. (8认同)
  • 董这不起作用(对我来说).我最终得到Jenkins试图检查一个分支`git.exe fetch --tags --progress origin + refs/heads/$ {BRANCH}:refs/remotes/origin/$ {BRANCH} --prune`这显然是无效. (6认同)
  • 默认情况下,构建master不会为应该构建所有开发分支的通用开发构建削减它. (4认同)

smo*_*med 10

我不认为你们都可以在同一个jenkins工作中,你需要做的是配置一个新的jenkins工作,它可以访问你的github来检索分支,然后你可以选择手动构建哪一个.

只需将其标记为参数化构建,指定名称和配置为的参数即可 git parameter

在此输入图像描述

现在你可以配置git选项:

在此输入图像描述

  • 那个git参数是一个jenkins插件?我没有看到添加该类型参数的选项.如果它是一个插件,你可以在答案中指出它吗? (5认同)

Igo*_* L. 7

要通过Jenkins脚本签出分支,请使用:

stage('Checkout SCM') {
    git branch: 'branchName', credentialsId: 'your_credentials', url: "giturlrepo"
}
Run Code Online (Sandbox Code Playgroud)

  • 我知道这不是问题的确切内容,但我正在搜索此信息,而谷歌一直建议将此站点作为答案。 (2认同)

小智 6

我可以看到很多很好的答案,但我仍然想分享这个方法,通过使用 Git 参数如下:

添加Git参数

构建管道时,系统会要求您选择分支: 选择要构建的分支

之后,通过 groovy 代码,您可以指定要克隆的分支:

git branch:BRANCH[7..-1], url: 'https://github.com/YourName/YourRepo.git' , credentialsId: 'github' 
Run Code Online (Sandbox Code Playgroud)

请注意,我使用从 7 到最后一个字符的切片来缩小“origin/”并获取分支名称。

此外,如果您配置了 Webhooks 触发器,它仍然可以工作,并且它将采用您指定的默认分支(master在我们的例子中)。


张健健*_*张健健 5

我终于解决了这个问题。你需要连接你的Git parameter插件和Generic Webhook Trigger插件。像这样: 在此输入图像描述

在此输入图像描述

在此输入图像描述

在此输入图像描述