Подтвердить что ты не робот

Свободное место в Jenkins, удаляющем каталог 'builds'

Я использую Jenkins для выполнения ежедневных задач с моими проектами, но при каждом выполнении Jenkins хранит 20-мегабайтный каталог в PROJECT_HOME/builds, поэтому после множества исполнений пространство на диске каждый проект огромен (10 ГБ для некоторых задач Дженкинса).

Мне не очень важно хранить результат предыдущих исполнений, поэтому я хочу знать, что если существует способ сказать Дженкинсу не хранить эту информацию.

Кто-нибудь знает, как избежать Дженкинса, чтобы сохранить результат старых исполнений?

4b9b3361

Ответ 1

Если вы перейдете на страницу конфигурации проекта, вы найдете флажок "Discard Old Builds". Включение этого параметра позволяет указать как количество дней для сохранения сборки, так и максимальное количество построек, которые нужно сохранить.

Ответ 2

Если вы хотите, чтобы Jenkins отбросил все старые сборки без повторного запуска всех сборок, вы можете запустить этот бит script, взятый из http://scriptlerweb.appspot.com/script/show/85001:

def jobs = Hudson.instance.items 

jobs.findAll{it.logRotator}.each {
  println("JOB : "+ it.name)
  try {
    println(it.logRotator.perform(it))
  } catch (Exception e) {
    println("It didn't work: "+ e)
  }
}

Примечание: для запуска script на Jenkins вы можете перейти в консоль script http://<server>/jenkins/script. Подробнее о консоли здесь: https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+Script+Console

Ответ 3

Если я, как и я, вы только заметили, что у вас закончилось свободное пространство, когда вы получили сбои сборки, тогда вам захочется прояснить некоторые из старых сборок, чтобы освободить место. Сначала измените конфигурацию, чтобы отбросить старые сборки как упомянутые jwernerny, тогда вам нужно будет начать сборку, чтобы инициировать очистку старых сборников. Сборка может снова завершиться из-за нехватки свободного места, но очистка после сборки теперь должна запускаться и отбрасывать старые сборки.

Ответ 4

Перейдите в раздел "Настроить" в вашем проекте.

Ответ 5

В консоли Jenkins Scriptler выполните ниже groovy script, чтобы удалить все сборки заданий, перечисленных в представлении

import jenkins.model.Jenkins

hudson.model.Hudson.instance.getView('<ViewName>').items.each() {
  println it.fullDisplayName


def jobname=it.fullDisplayName
def item = hudson.model.Hudson.instance.getItem(jobname)
def build = item.getLastBuild()
if (item.getLastBuild() !=null)
  {
Jenkins.instance.getItemByFullName(jobname).builds.findAll { it.number <= build.getNumber() }.each { it.delete() }

}
}

Ответ 6

На самом деле, я считаю, что не очень удобно удалять папки самостоятельно.

Пусть делают специалисты. Вы еще не пробовали Отменить старый модуль сборки?

"Вы можете настроить, как отбрасывать сборки более подробно, чем по умолчанию функция" Отменить старую сборку ". Помимо # строчек и дней, вы можете указать статус сборки для сброса/сохранения. Для старых сборщиков вы может настраивать интервал для сохранения сборок (один раз в месяц, один раз в десять строит...). Вы также можете использовать размер файла журнала, чтобы решить, удалить ли старый строить".