Jenkins delete jobs when branch deleted via branch-indexing

戏子无情 提交于 2019-11-30 02:15:30

问题


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?


回答1:


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).




回答2:


1) Go to Manage Jenkins -> Global Tool Configuration -> Git -> Add Git -> Choose JGit.

2) Then go to your multibranch pipeline configuration and choose JGit instead Default under Branch Sources -> Git Executable

3) Press Branch Indexing -> Run now

Old branches should go away now



来源:https://stackoverflow.com/questions/37210799/jenkins-delete-jobs-when-branch-deleted-via-branch-indexing

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!