这不仅仅是进行参数化构建。我已经有了一个特定的构建过程,只要将任何这些分支推送到GitHub,它就会构建和部署:
因此,如果我刚刚推送develop
并且它已成功构建,我该如何触发手动构建并将其拉feature/my-new-feature
(不执行git push
)?我尝试启用参数化构建,添加一个名为branch
的新字符串,然后添加一个新的分支说明符*/$branch
。然后我运行了一个构建并将branch
设置为feature/my-new-feature
,它仍然从develop
拉出。
我很感激任何帮助!
答案 0 :(得分:76)
最佳解决方案可以是:
中添加新字符串参数然后在Source Code Management
部分更新Branches to build
以使用字符串参数定义
这将允许jenkins作业将默认分支用作master
,对于手动构建,它将要求您输入分支详细信息(仅供参考:默认设置为master
){{ 3}}
答案 1 :(得分:7)
我不认为你们可以在同一个jenkins工作中,你需要做的是配置一个新的jenkins工作,它可以访问你的github来检索分支,然后你可以选择手动选择哪一个建立。
只需将其标记为参数化构建,指定名称,并将参数配置为git parameter
现在您可以配置git选项:
答案 2 :(得分:5)
要通过Jenkins脚本检出分支,请使用:
stage('Checkout SCM') {
git branch: 'branchName', credentialsId: 'your_credentials', url: "giturlrepo"
}
答案 3 :(得分:1)
我可以看到很多很好的答案,但是我仍然希望通过使用Git参数来共享此方法:
之后,通过常规代码,您可以指定要克隆的分支:
git branch:BRANCH[7..-1], url: 'https://github.com/YourName/YourRepo.git' , credentialsId: 'github'
请注意,我正在使用从7到最后一个字符的切片来缩小“ origin /”并获取分支名称。
如果您配置了一个Webhooks触发器,它仍然可以工作,它将采用您指定的默认分支(在我们的案例中为master
)。
答案 4 :(得分:1)
答案 5 :(得分:0)
This is extension of answer provided by Ranjith
我建议你选择一个choice-parameter构建,并指定你想要构建的分支。 Active Choice Parameter
之后,您可以指定要构建的分支。 Branch to Build
现在,当您构建项目时,将为您提供“使用参数构建,您可以在其中选择要构建的分支”
您还可以编写一个groovy脚本,以便在活动选择参数中获取所有分支。
答案 6 :(得分:0)
答案 7 :(得分:0)
我遇到了同样的问题。 我的 jenkinsfile 有一些问题。 例如,在执行 release-start 时,checkout 分支是 develop。因此,无论我的输入如何,都在使用开发(并且我的分支尚未合并到开发中) 另外,尝试像这样添加完整的分支名称。以下是帮助选项的说明:
<块引用>"最安全的方法是使用 refs/heads/ 语法。这样 预期的分支是明确的。
如果您的分支名称中有 / 确保使用完整的参考 上面。”
答案 8 :(得分:0)
你也可以使用正则表达式 |代表“或”
就像下面的例子:
(.*branch1|.*branch2)