git Jenkins -如何构建特定的分支

8zzbczxx  于 2023-10-14  发布在  Git
关注(0)|答案(9)|浏览(130)

这并不像只是做一个参数化的构建那么简单。我已经有了一个特定的构建过程,每当这些分支中的任何一个被推送到GitHub时,它都会构建和部署:

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

8cdiaqws

8cdiaqws1#

最佳解决方案可能是:
在现有作业

中添加字符串参数
然后在Source Code Management部分更新Branches to build以使用您定义的字符串参数:

如果您看到标记为Lightweight checkout的复选框,请确保其未选中。
图像中指示的配置将告诉jenkins作业使用master作为默认分支,对于手动构建,它将要求您输入分支详细信息(仅供参考:默认设置为master

kxe2p93d

kxe2p93d2#

我不认为你可以在同一个jenkins job中创建两个分支,你需要做的是配置一个新的jenkins job,它可以访问你的github来获取分支,然后你可以选择手动构建哪一个。
只需将其标记为参数化构建,指定名称和配置为git parameter的参数

现在你可以配置git选项:

8gsdolmq

8gsdolmq3#

要通过Jenkins脚本 checkout 分支,请使用:用途:

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

kwvwclae4#

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

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

然后,通过groovy代码,你可以指定你想要克隆的分支:

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

请注意,我使用了从7到最后一个字符的切片来缩小“origin/”并获得分支名称。
同样,如果你配置了一个webhooks触发器,它仍然可以工作,它将采用你指定的默认分支(在我们的例子中是master)。

wfveoks0

wfveoks05#

我终于解决了这个问题。您需要连接Git parameter插件和Generic Webhook Trigger插件。例如:

ipakzgxi

ipakzgxi6#

This is extension of answer provided by Ranjith
我建议,你选择一个选择参数构建,并指定你想要构建的分支。Active Choice Parameter
之后,您可以指定要构建的分支。Branch to Build
现在,当你要构建你的项目时,你会被提供“带参数构建,你可以选择要构建的分支”
你也可以写一个groovy脚本来获取你所有的分支到active choice参数中。

sirbozc5

sirbozc57#

在Build Triggers下的configure中将有一个选项
查看GitHub分支
当你选择github分支

时,一个钩子将被创建,然后你可以从Jenkins构建任何你喜欢的分支
希望有帮助:)

wr98u20j

wr98u20j8#

我也遇到了同样的问题。我的Jenkins档案出了点问题。例如,在执行release-start时, checkout 分支是develop。所以,不管我的输入,develop被使用了(我的分支还没有合并到develop中)。下面是帮助选项的描述:
“最安全的方法是使用refs/heads/ syntax。这样,预期的分支是明确的。
如果您的分支名称中有/,请确保使用上面的完整引用。”

kq0g1dla

kq0g1dla9#

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

(.*branch1|.*branch2)

相关问题