繁体   English   中英

Jenkins - 如何建立一个特定的分支

[英]Jenkins - how to build a specific branch

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

在此处输入图片说明

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

我很感激任何帮助!

最佳解决方案可以是:

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

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

如果您看到标记为Lightweight checkout的复选框,请确保未选中它。

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

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

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

在此处输入图片说明

现在您可以配置 git 选项:

在此处输入图片说明

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

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

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

添加 Git 参数

在构建管道时,您将被要求选择分支: 选择要构建的分支

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

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

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

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

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

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

这是 Ranjith 提供的答案的扩展

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

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

现在,当您构建项目时,您将获得“带参数构建,您可以在其中选择要构建的分支”

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

在此处输入图片说明

在 Build Triggers 下的 configure 中会有一个选项

检查 GitHub 分支

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

希望能帮助到你 :)

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

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

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

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

像下面的例子:

(.*branch1|.*branch2)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM