Hudson/Jenkins Git build all branches

后端 未结 4 1877
面向向阳花
面向向阳花 2021-01-31 08:29

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 s

相关标签:
4条回答
  • 2021-01-31 08:58

    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

    0 讨论(0)
  • 2021-01-31 09:04

    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
    
    0 讨论(0)
  • 2021-01-31 09:09

    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

    0 讨论(0)
  • 2021-01-31 09:14

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

    0 讨论(0)
提交回复
热议问题