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

Как очистить историю сборки Jenkins/Hudson?

Недавно я обновил конфигурацию одной из моих hudson-сборок. История сборки не синхронизирована. Есть ли способ очистить историю сборки?

Пожалуйста, спасибо вам

4b9b3361

Ответ 1

Если вы нажмете "Управление хадсон/перезагрузка конфигурации с диска", Хадсон перезагрузит все данные истории сборки.

Если данные на диске испорчены, вам нужно перейти в каталог% HUDSON_HOME%\jobs\<projectname> и восстановить каталоги сборки, как они должны быть. Затем перезагрузите данные конфигурации.

Если вы просто спрашиваете, как удалить всю историю сборки, вы можете просто удалить сборки по одному с помощью пользовательского интерфейса, если их всего несколько, или перейти в каталог% HUDSON_HOME%\jobs\<projectname> и удалите все подкаталоги там - они соответствуют строкам. Затем перезапустите службу, чтобы изменения вступили в силу.

Ответ 2

Используйте консоль script (Управление консоли Jenkins > script) и что-то вроде этого script для массового удаления истории создания задания https://github.com/jenkinsci/jenkins-scripts/blob/master/scriptler/bulkDeleteBuilds.groovy

То, что script предполагает, что вы хотите удалить только ряд построений. Чтобы удалить все сборки для заданного задания, используйте это (проверено):

// change this variable to match the name of the job whose builds you want to delete
def jobName = "Your Job Name"
def job = Jenkins.instance.getItem(jobName)

job.getBuilds().each { it.delete() }
// uncomment these lines to reset the build number to 1:
//job.nextBuildNumber = 1
//job.save()

Ответ 3

Этот ответ для Дженкинса

  • Перейдите на домашнюю страницу Jenkins → Управление Jenkins → Script Консоль

    Введите описание изображения здесь

  • Запустите здесь Script. Измените copy_folder на your project name

код:

def jobName = "copy_folder"
def job = Jenkins.instance.getItem(jobName)
job.getBuilds().each { it.delete() }
job.nextBuildNumber = 1
job.save()

Мой пост

Ответ 4

Вот еще один вариант: удалить сборки с помощью cURL.

$ curl -X POST http://jenkins-host.tld:8080/jenkins/job/myJob/[1-56]/doDeleteAll

Вышеуказанное удаляет сборку с № 1 по № 56 для задания myJob.

Если для экземпляра Jenkins включена аутентификация, необходимо указать имя пользователя и токен API следующим образом:

$ curl -u userName:apiToken -X POST http://jenkins-host.tld:8080/jenkins/job/myJob/[1-56]/doDeleteAll

Токен API должен быть получен со страницы /me/configure в Jenkins. Просто нажмите кнопку "Показать API-токен...", чтобы отобразить как имя пользователя, так и API-токен.

Редактировать: возможно, придется заменить doDeleteAll на doDelete в приведенных выше URL-адресах, чтобы это работало, в зависимости от конфигурации или используемой версии Jenkins.

Ответ 5

Вы можете временно изменить конфигурацию проекта, чтобы сохранить только последнюю сборку, перезагрузить конфигурацию (которая должна уничтожить старые сборки), а затем снова изменить настройку конфигурации на нужное значение.

Ответ 6

Вот как удалить ВСЕ ПОСТРОЙКИ ДЛЯ ВСЕХ РАБОТ...... используя скрипт Jenkins.

def jobs = Jenkins.instance.projects.collect { it } 
jobs.each { job -> job.getBuilds().each { it.delete() }} 

Ответ 7

Это лучший вариант из доступных.

Jenkins.instance.getAllItems(AbstractProject.class).each {it -> Jenkins.instance.getItemByFullName(it.fullName).builds.findAll { it.number > 0 }.each { it.delete() } }

Этот код удалит всю историю сборки Jenkins Job.

Ответ 8

Если вы хотите очистить историю сборки MultiBranchProject (например, конвейер), перейдите на домашнюю страницу Jenkins → Управление Jenkins → Консоль скрипта и запустите следующий скрипт:

def projectName = "ProjectName"
def project = Jenkins.instance.getItem(projectName)
def jobs = project.getItems().each {
  def job = it
  job.getBuilds().each { it.delete() }
  job.nextBuildNumber = 1
  job.save()
}

Ответ 9

Еще один простой способ очистить сборки - это добавить старый плагин Discard в конце ваших заданий. Установите максимальное количество сборок для сохранения и затем запустите задание еще раз:

https://wiki.jenkins-ci.org/display/JENKINS/Discard+Old+Build+plugin

Ответ 10

Перейдите в каталог %HUDSON_HOME%\jobs\<projectname> remove builds и удалите ссылки lastStable, lastSuccessful и удалите файл nextBuildNumber.

После выполнения вышеуказанных шагов перейдите по ссылке ниже от UI
Jenkins- > Управление Jenkins → Перезагрузка конфигурации с диска

Он будет делать то, что вам нужно

Ответ 11

Если вы используете метод Script Console, попробуйте использовать следующее вместо этого, чтобы учесть, если задания сгруппированы в контейнеры папок.

def jobName = "Your Job Name"
def job = Jenkins.instance.getItemByFullName(jobName)

или

def jobName = "My Folder/Your Job Name
def job = Jenkins.instance.getItemByFullName(jobName)

Ответ 12

Использование Script Console.

В случае, если задания сгруппированы, можно либо дать ему полное имя с косой чертой:

getItemByFullName("folder_name/job_name") 
job.getBuilds().each { it.delete() }
job.nextBuildNumber = 1
job.save()

или пересечь иерархию следующим образом:

def folder = Jenkins.instance.getItem("folder_name")
def job = folder.getItem("job_name")
job.getBuilds().each { it.delete() }
job.nextBuildNumber = 1
job.save()

Ответ 13

Удаление непосредственно из файловой системы небезопасно. Вы можете запустить приведенный ниже скрипт, чтобы удалить все сборки из всех заданий (рекурсивно).

def numberOfBuildsToKeep = 10
Jenkins.instance.getAllItems(AbstractItem.class).each {
  if( it.class.toString() != "class com.cloudbees.hudson.plugins.folder.Folder" && it.class.toString() != "class org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject") {
    println it.name
    builds = it.getBuilds()
    for(int i = numberOfBuildsToKeep; i < builds.size(); i++) {
        builds.get(i).delete()
      println "Deleted" + builds.get(i)
    }
  }
}'''

Ответ 14

Перейдите к: %JENKINS_HOME%\jobs\jobName

Откройте файл "nextBuildNumber" и измените номер. После этого перезагрузите конфигурацию Дженкинса. Примечание: файл nextBuildNumber содержит следующую сборку, которая не будет использоваться Дженкинсом.