繁体   English   中英

Hudson/Jenkins Git 构建所有分支

[英]Hudson/Jenkins Git build all branches

我们有很多开发人员创建了我想要构建的功能分支。 每晚我们运行一个代码质量工具,需要在每个分支上运行。 我也不喜欢静态配置,因为分支的数量每隔几周就会发生变化。

在 Git 配置中有一个字段 'Branch Specifier (blanch Specifier (blank for default): ' 如果你把它放在那里 ** 它将从所有远程构建所有分支。

有了这个,您可以使用环境变量 ${GIT_BRANCH} 例如使用https://wiki.jenkins-ci.org/display/JENKINS/Build+Name+Setter+Plugin或其他目的设置构建的标题

我有同样的问题需要解决。 具体来说,制作所有分支的 zip 文件,并将它们作为工件提供,以用于不同的测试作业。

在“要构建的分支”中,输入“**”

然后,执行shell:

while read -ra ITEM; do
  for i in "${ITEM[@]}"; do
    git checkout $i
    <do your stuff>
  done
done <<< $(git branch -r | grep -v "HEAD ->" | xargs -L 1 | cut -d'/' -f2)

这会读取分支列表,分别签出每个分支并允许在每个分支中执行操作。 <<< 命令转换此输出:

  origin/HEAD -> origin/master
  origin/branch1
  origin/master
  origin/secondbranch

进入结帐可用列表:

branch1
master
secondbranch

老问题,但更合适的答案。 下面的多分支插件允许您创建一个构建项类型,用分支扇出子项目,自动从顶级同步配置到子项目

https://wiki.jenkins-ci.org/display/JENKINS/Multi-Branch+Project+Plugin

2021 年更新此插件已标记为已弃用

此插件已弃用。 请移至Multibranch Pipeline 作业类型。

对于更复杂的方法,Seed 插件为您提供了很大的灵活性来定义子作业

https://github.com/jenkinsci/seed-plugin/wiki

** for 分支说明符将针对所有分支和所有标签运行。 如果您只想要分支,请使用 refs/heads/* 的分支说明符

暂无
暂无

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

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