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

时间:2015-08-20 01:57:18

标签: git github jenkins

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

enter image description here

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

我很感激任何帮助!

9 个答案:

答案 0 :(得分:76)

最佳解决方案可以是:

在现有作业enter image description here

中添加新字符串参数

然后在Source Code Management部分更新Branches to build以使用字符串参数定义enter image description here

这将允许jenkins作业将默认分支用作master,对于手动构建,它将要求您输入分支详细信息(仅供参考:默认设置为master){{ 3}}

答案 1 :(得分:7)

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

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

enter image description here

现在您可以配置git选项:

enter image description here

答案 2 :(得分:5)

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

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

答案 3 :(得分:1)

我可以看到很多很好的答案,但是我仍然希望通过使用Git参数来共享此方法:

Add Git parameter

在构建管道时,将要求您选择分支: Choose branch to build

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

git branch:BRANCH[7..-1], url: 'https://github.com/YourName/YourRepo.git' , credentialsId: 'github' 

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

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

答案 4 :(得分:1)

我终于解决了这个问题。您需要连接 Git parameter 插件和 Generic Webhook Trigger 插件。像这样: enter image description here

enter image description here

enter image description here

enter image description here

答案 5 :(得分:0)

This is extension of answer provided by Ranjith

我建议你选择一个choice-parameter构建,并指定你想要构建的分支。 Active Choice Parameter

之后,您可以指定要构建的分支。 Branch to Build

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

您还可以编写一个groovy脚本,以便在活动选择参数中获取所有分支。

答案 6 :(得分:0)

enter image description here

在构建触发器

下的配置中将有一个选项

检查GitHub分支

将创建一个钩子,然后当您选择github分支enter image description here

时,您可以从Jenkins构建任何您喜欢的分支

希望有所帮助:)

答案 7 :(得分:0)

我遇到了同样的问题。 我的 jenkinsfile 有一些问题。 例如,在执行 release-start 时,checkout 分支是 develop。因此,无论我的输入如何,都在使用开发(并且我的分支尚未合并到开发中) 另外,尝试像这样添加完整的分支名称。以下是帮助选项的说明:

<块引用>

"最安全的方法是使用 refs/heads/ 语法。这样 预期的分支是明确的。

如果您的分支名称中有 / 确保使用完整的参考 上面。”

答案 8 :(得分:0)

你也可以使用正则表达式 |代表“或”

就像下面的例子:

(.*branch1|.*branch2)