Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to exclude git branch from building in Jenkins

Tags:

git

jenkins

Here is my current Jenkins setup for a project:

  • one job runs all development branches
  • one job runs all pull requests
  • one job runs only the master branch
  • one job makes the automated release only when master passes

This setup allows me to have continuous automated delivery as well as constant feedback during development. The first 3 jobs also run all tests and coverage reports.

The problem is that I could not find a way to exclude the master branch from the "all development branches" job. It unnecessarily builds master twice every time I merge a pull-request.

Does anybody know how to exclude one branch from the job in Jenkins ?

ps: I am using the Git and the Github plugins. My project is stored on Github.

like image 981
Carneiro Avatar asked Jan 23 '14 16:01

Carneiro


People also ask

How do I enable a disabled branch in Jenkins?

The UI controls to disable and enable Multibranch / Organization items have been fixed in Folders Plugin 6.12 as per JENKINS-60900. Since Folders Plugin 6.12 , you'll be able to enable and disable them by clicking on the Disable Multibranch Pipeline or the corresponding item button.

How do I enable a branch in Jenkins?

Head over to your Jenkins instance and create a new item. Enter a name for the job, and select the “Multibranch Pipeline” option at the end of the screen. Then, click on the OK button. In the next screen, go to the “Branch sources” tab, click on the “Add source” button, and choose “Git” from the dropdown menu.


2 Answers

You can choose "Inverse" strategy for targeting branches to build.

Check out Jenkins job configuration,

  • "Source Code Management" section (choose "Git")
  • Additional Behaviours
  • click "Add" button
  • choose "Strategy for choosing what to build"
  • select "Inverse" strategy in combo box.

(Don't forget to fill in "Branches to build" text field by "master")

See also attachment screenshot image:


enter image description here

like image 69
kyanny Avatar answered Oct 02 '22 17:10

kyanny


You can use :^(?!.*master).*$ as the branch specifier in Jenkins and all branches except master will be built. See answer: https://stackoverflow.com/a/18709097/444639

like image 43
Mike Rylander Avatar answered Oct 02 '22 17:10

Mike Rylander