Search code examples
gitjenkinsjenkins-2

Jenkins delete jobs when branch deleted via branch-indexing


Is there a way to tell Jenkins (2.2) to remove jobs for branches that were deleted? Currently my build-monitor fills up with branches as the jobs are not deleted. Is there a setting to trigger this behavior or should this be filed as a bug?


Solution

  • Since you are using latest Jenkins version, consider switching your jobs to multibranch pipeline setup.

    The Workflow Multibranch feature (provided by the workflow plugin) provides the following key abilities:

    • Automatic Workflow (job) creation in Jenkins per new branch in the repo (assuming webhooks are registered from GH to Jenkins).

    • Build specific to that child-branch and its unique scm change and build history.

    • Automatic job pruning/deletion for branches deleted from the repository, according to the settings.

    • Flexibility to individually configure branch properties, by overriding the parent properties, if required.

    EDIT: check the 'Discard Old Items' settings for you pipeline. If you have non-zero 'Max # of old items' then, if your branch had less builds then this number, it will never be deleted! You can even see that in logs:

    Will not remove US12345 as it is only #1 in the list
    Will not remove US23456 as it is only #2 in the list
    Will not remove US34567 as it is only #3 in the list
    

    EDIT: You can also try your luck by adding additional behavior named "Prune stale remote-tracking branches" ("Behaviors" -> "Add" -> Select from dropdown).