Hudson / Jenkins Git建立了所有分支机构

时间:2013-03-11 17:35:45

标签: git jenkins hudson

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

4 个答案:

答案 0 :(得分:38)

在Git配置中有一个字段'Branch Specifier(默认为空):' 如果你放在那里**它将构建所有遥控器的所有分支。

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

答案 1 :(得分:6)

我有同样的问题需要解决。具体来说,制作所有分支的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)

这将分别读取分支列表,每个分支结帐,并允许在每个分支中执行操作。 &lt;&lt;&lt;&lt;&lt;命令转换此输出:

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

进入结帐可用清单:

branch1
master
secondbranch

答案 2 :(得分:1)

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

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

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

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

答案 3 :(得分:0)

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

的分支说明符