Удалить старые сборки для всех заданий внутри папки из консоли скрипта - PullRequest
0 голосов
/ 25 октября 2019

Я хочу удалить старые сборки для всех заданий, которые я держал в папке, из консоли сценария, а не из индивидуальной конфигурации заданий Jenkins, чтобы отбросить старые сборки. Я хочу сохранить только последние 10 сборок и удалить старые. Я спрашиваю об удалении старых сборок определенной папки, а не других заданий в другой папке.

1 Ответ

0 голосов
/ 25 октября 2019

Следующий скрипт groovy удалит все сборки, кроме 10 самых последних сборок каждого задания, настроенного в Jenkins.

import jenkins.model.*
import hudson.model.*


Jenkins.instance.getAllItems(AbstractItem.class).each { 
  def job = jenkins.model.Jenkins.instance.getItem(it.fullName)

  if (job!=null){
    println "job: " + job;  
    int i = 1;
    job.builds.each {
        def build = it;
        if (i<=10){
           println "build: " + build.displayName + " will NOT BE DELETED";
        }else{
           println "build: " + build.displayName + " will BE DELETED";
           it.delete(); 
        }
        i = ++i
    }
  } 
};

Первый цикл будет перебирать все элементы Jenkins и будет сохранять его в задании var,Если задание не является заданием Jenkins, результат может быть нулевым, поэтому проверка if (job!=null) позволяет выполнить код только для заданий Jenkins.

int i = 1; - это инициализация счетчика длякаждое задание, которое увеличивается при обнаружении сборки. Насколько я знаю, порядок сборки сохраняется, и самая последняя сборка возвращается первой в цикле. Когда счетчик достигает 10 или более, if..else входит в блок else и удаляет сборку it.delete()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...