Advertisement
jimklimov

queue-cleaner-SystemGroovy

Jan 24th, 2022
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.41 KB | None | 0 0
  1. //Find items in queue that match <project name> like "part of BIOS on Stash » bios-images » release/IPM-2.0.0 #26"
  2.  
  3. import jenkins.model.*
  4.  
  5. def listener = this.getProperty('binding').getVariable('listener')
  6. def env = build.getEnvironment(listener)
  7.  
  8. def q = Jenkins.instance.queue
  9.  
  10. //get all jobs id to the killing-list
  11. def queue_list = []
  12.  
  13. def queue_sidebranches = q.items.findAll {
  14. !it.task.name.contains('sc-') &&
  15. !it.task.name.contains('rc-') &&
  16. !it.task.name.contains('ova-') &&
  17. !it.task.name.contains('selenium') &&
  18. !it.task.name.contains('PR-') &&
  19. !it.task.name.contains('CB') &&
  20. !it.task.name.contains('Cloudberry') &&
  21. !it.task.name.contains('master') &&
  22. !it.task.name.contains('FTY')
  23. /*
  24. &&
  25. !it.task.name.contains('release/') &&
  26. !it.task.name.contains('release%2F') &&
  27. !it.task.name.contains('featureimage/') &&
  28. !it.task.name.contains('featureimage%2F')
  29. */
  30. }
  31. println "FOUND " + queue_sidebranches.size() + " side-branch items:"
  32. queue_sidebranches.sort().each {
  33. println "FOUND : ${it.task.name} \t => " + it.getId() + " ..." ;
  34. queue_list.add(it.getId()) ;
  35. }
  36.  
  37. // For the other job definitions, go over main branches we do want to get built, but only keep the newest one
  38. def branch_list = [ 'master' ]
  39. [ 'release/', 'release%2F' ].each {brPrefix ->
  40. [ 'IPM-2.0.1', 'IPM-2.0.0', 'IPM_Infra-1.5.1', 'IPM_Infra-1.5.0', 'IPM_Infra-1.4', 'IPM_Infra-1.3' ].each {relNum ->
  41. branch_list.add(brPrefix + relNum);
  42. }
  43. }
  44. [ 'featureimage/', 'featureimage%2F' ].each {brPrefix ->
  45. [ 'licensing-credits', 'mariadb-caching', 'modbus-powermeter', 'alert-refactoring' ].each {featName ->
  46. branch_list.add(brPrefix + featName);
  47. }
  48. }
  49.  
  50. def component_list = ['bios-images']
  51. //....
  52.  
  53. component_list.each { compName ->
  54. println "Inspecting component '${compName}' ..."
  55. branch_list.each { brName ->
  56. def queue = q.items.findAll { it.task.name.contains(compName) && it.task.name.contains(brName) }
  57.  
  58. if (queue.size() > 1) {
  59. def queue_list1 = []
  60. queue.each {
  61. println "FOUND : ${it.task.name} \t => " + it.getId() + " ..."
  62. queue_list1.add(it.getId())
  63. }
  64. //sort id's, remove last one - in order to keep the newest job, cancel the rest
  65. queue_list1.sort().take(queue_list.size() - 1).each {
  66. queue_list.add(it);
  67. }
  68. }
  69. }
  70. }
  71.  
  72. queue_list.each { println "q.doCancelItem(${it})" ; q.doCancelItem(it) ; }
  73.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement