We usually work on several parallel branches of a repo on github, and we wanted to be able to build and test any branch on demand.

So we set up a parameterised job in Jenkins that will take the name of a branch and run the build process.

As for all github builds, you need to have installed the git plugin first (https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin) and set up your github globals in the Jenkins settings:

 

 

 

Then set up a parameterized build job with the repo as the GitHub project and with "branch" as the parameter to be specified:

and in the Source Code Management section, add the parameter to the "Branches to build":

Don't specify any build triggers - you'll probably just want to run this on-demand against specific branches, rather than every time there's a push to the repo (which is what happens by default).

Now you can build any branch just by giving the branch name as the required parameter when the job is started.