Hudson/Jenkins Git build all branches

江枫思渺然 提交于 2019-12-31 08:34:10

问题


We have a lot of developers creating feature branches that I would like to build. Nightly we run a code quality tool that needs to run on every branch. I also would not like a static configuration because the number of branches changes every few weeks.


回答1:


In Git configuration there is a field 'Branch Specifier (blank for default): ' if you put there ** it will build all branches from all remotes.

having that you can use an environment variable ${GIT_BRANCH} e.g. to set a title for the build using https://wiki.jenkins-ci.org/display/JENKINS/Build+Name+Setter+Plugin or for other purposes




回答2:


I had the same problem to be solved. Specifically, make a zip file of all branches and offer those as artifacts to be used in different test jobs.

In "Branches to build", put "**"

Then, Execute 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)

This reads the list of branches, checkouts each of them separately and allows to do stuff in each of them. The <<< command converts this output:

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

into checkout usable list:

branch1
master
secondbranch



回答3:


Old question but somewhat more fitting answer. The multi-branch plugin below allows you to create a build item type that fans out sub-projects with branches, syncing config automatically from top level to sub-projects

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

For a somewhat more involved approach, Seed plugin gives you a lot of flexibility defining sub-jobs

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




回答4:


The ** for branch specifier will run against all branches AND all tags. If you just want branches, use a branch specifier of refs/heads/*



来源:https://stackoverflow.com/questions/15344955/hudson-jenkins-git-build-all-branches

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!