How do I configure Jenkins to build all branches except a few which I exclude?

We have some code in git and I started setting up Jenkins to grab our branches and try a compile. It seems that a few of the branches may have begun to rot in the years since they were last built, as they fail to finish a make.

I would like to build all branches that are found, except for a list of excluded ones. Is this possible in Jenkins? This will let me get things up and running, then come back to enable more branches as I try to fix them.

  • What characters can I use in a Git alias?
  • Egit eclipse: resolve conflict without commit all files
  • How to use GIT LFS to track iOS frameworks?
  • Using a socks proxy with git for the http transport
  • NetBeans + Git on BitBucket
  • Failed to get absolute path to installed module
  • What I have tried so far

    Regex with lookahead

    Looking at the ‘Git > Branches to build’ option I was hopeful that I could replace the default ‘**’ wildcard with a :. A bit of digging about and double checking with http://rubular.com/ suggested that the following might do what I wanted.

    :^(?!origin/exclude\-this\-branch\.v1|origin/exclude\-this\-branch\-too.v2)(\S+)

    Now there is an assumption here about the regex engine running in the background. I would hope it might understand lookahead, but if it does not that explains why this method fails. It seems to build all the branches, including the one I am try to exclude. Maybe I just need to find some more debug?

    Looked for similar questions here

    I came across Jenkins/Hudson Build All Branches With Prioritization which seemed to contain a possible solution in that some added an inverse option to branch matching https://github.com/jenkinsci/git-plugin/pull/45 sounds like what I need. Sadly this does not seem to be in the version of Jenkins I have, which is odd as 2011 is a long time ago.

    The System I Am Using

    Ubuntu LTS 14.04. Jenkins ver. 1.611. GNU tool chains to make C/C++ code.

  • github and composer. pulling repository branches
  • Can not add user with Gitolite
  • Including specific file extension in gitignore
  • Importing project from github to eclipse error
  • Git - remote: error: cannot run hooks/post-receive: No such file or directory
  • find out when a git branch was created (not the first commit to that branch)
  • One Solution collect form web for “How do I configure Jenkins to build all branches except a few which I exclude?”

    How about using

    ^(?!.*master).*$
    

    as branch specifier. This regexp means all branches not matching master.

    Breakdown:

    ^(?!.*master).*$
    ^                ---> beginning of string
     (?!        )    ---> negative lookahead find all that doesnt match
        .*           ---> zero or more of 'any' character
          master     ---> should not match master
                 .*$ ---> will match anything to the end of string
    

    Related: https://stackoverflow.com/a/18709097/109305

    Git Baby is a git and github fan, let's start git clone.