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


95

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

在此处输入图片说明

因此,如果我刚刚推送develop并成功构建,如何触发手动构建并拉动它feature/my-new-feature(不执行git push)?我尝试启用参数化构建,添加了一个名为的新字符串branch,然后添加了一个新的分支说明符*/$branch。然后,我运行一个构建并将其设置branchfeature/my-new-feature,但仍从中撤出develop

我将不胜感激!


您在谈论github webhook吗?这可能会解决您的问题。您是否要从github触发此操作?
Abhijeet Kamble 2015年

1
不,GitHub集成已经在工作。我需要知道如何手动构建特定分支。
ffxsam 2015年

3
我也有同样的问题。该作业被配置为构建不同的分支,并由git钩子触发。但是,当我想手动建立一个特定的分支(GIT中没有新的更改)时,我单击“立即构建”,但是它总是会构建最新的签出分支。还尝试了各种构建属性。
2013年

如果您的参数名为branch,则只需$branch在branch specifier字段中指定即可。
Alexey'7

1
@Alexey,但是$branch我想在自动启动构建过程中会导致一个空字符串。
Nakilon

Answers:


109

最佳解决方案可以是:

在现有作业中添加字符串参数 在此处输入图片说明

然后在Source Code Management部分更新Branches to build中使用您定义的字符串参数在此处输入图片说明

如果您看到标有的复选框Lightweight checkout,请确保未选中该复选框。

图像中指示的配置将告诉jenkins作业master用作默认分支,对于手动构建,它将要求您输入分支详细信息(仅供参考:默认设置为master在此处输入图片说明


4
默认情况下,Build master不会将其用于应该构建所有开发分支的通用开发版本。
static_rtti

9
天哪,太糟糕了。詹金斯为什么不保留Branches to build适用于该死的Git回购的部分?必须执行此操作以指定要构建的分支是愚蠢的PITA。
Alex Zavatone '17

9
董这对我不起作用。我最终让詹金斯试图签出git.exe fetch --tags --progress origin +refs/heads/${BRANCH}:refs/remotes/origin/${BRANCH} --prune显然无效的分支。
利亚姆

1
这被记录为詹金斯(Jenkins)上错误,因此很难看出它是如何工作的?
利亚姆

19
@Liam根据错误票证中的建议,您需要取消选中“轻量级结帐”才能使此工作生效。
asmaier

10

我不认为您可以在同一个jenkins作业中实现这两者,您需要做的是配置一个新的jenkins作业,该作业可以访问github来检索分支,然后您可以选择手动构建哪个分支。

只需将其标记为参数化版本,指定名称,然后将参数配置为 git parameter

在此处输入图片说明

现在您可以配置git选项:

在此处输入图片说明


7
那个git参数是jenkins插件?? 我看不到添加该类型的参数的选项。如果是插件,您可以在答案中指出它吗?
Leandro David

@LeandroDavid是的Git Parameter是一个插件,需要安装后才能在Add Parameter下看到此选项。
gotosachin

9

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

stage('Checkout SCM') {
    git branch: 'branchName', credentialsId: 'your_credentials', url: "giturlrepo"
}

1
我知道这与问题不完全相同,但是我一直在搜索此信息,因此Google一直在建议该网站作为答案。
伊戈尔·

同样在这里,兄弟。是你能找到答案确切的答案
thinkingmonster

0

这是Ranjith提供的答案的扩展

我建议您选择一个选择参数构建,并指定要构建的分支。 主动选择参数

然后,您可以指定要构建的分支。 建立分支

现在,当您构建项目时,将为您提供“使用参数构建,您可以在其中选择要构建的分支”

您还可以编写一个groovy脚本以在active choice参数中获取所有分支。


请详细说明。TeamCity默认情况下会执行此操作,但Jenkins甚至不能绑自己的鞋子!!!
C约翰逊

0

在此处输入图片说明

在“构建触发器”下的“配置”中将有一个选项

检查GitHub分支

一个钩子将被创建,然后当您选择github Branches时,您可以从Jenkins构建任何您喜欢的分支 在此处输入图片说明

希望能帮助到你 :)


我正在尝试通过此设置使用此插件,但找不到找到使工作开始的方法。有没有其他方法可以检查事件是否正确地来自gh?
维托·德·图利奥

您是否有Run Branch Trigger选择,它会扫描git repo中所有可用的分支...也只需查看jenkins日志->在Manage Jenkins下...以查看是否发生了错误
rohit thomas

1
请详细说明,您的描述太小而简短。
C约翰逊
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.