Вопрос

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

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

Это было полезно?

Решение

Если вы нажмете управление конфигурацией HUDSON / RELOOD с Disk, HUDSON будет перезагружать все данные истории сборки.

Если данные на диске запутаются, вам нужно перейти к вашему% hudson_home% Jobsназвание проекта> Справочник и восстановить каталоги сборки, как они должны быть. Затем перезагрузите данные конфигурации.

Если вы просто спрашиваете, как удалить всю историю сборки, вы можете просто удалить сборки один за другим через пользовательский интерфейс, если есть всего несколько, или перейдите к% HUDSON_HOME% Jobsназвание проекта> Справочник и удаление всех там подкаталогов - они соответствуют сборкам. После этого перезапустите сервис для изменения в силу.

Другие советы

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

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

// 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()

Этот ответ для Jenkins

  1. Перейти к вашей странице Дженкинса → Управлять ДженкинсомКонсоль сценария

    Enter image description here

  2. Запустите там следующий сценарий. Изменять 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()

Мой пост

Вот еще один вариант: удалите сборки с завитым.

$ 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 Страница в Дженкинс. Просто нажмите на кнопку «Показать токен API ...», чтобы отобразить как имя пользователя, так и токена API.

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

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

Вот как удалить все сборки для всех рабочих мест ...... Использование сценариев Jenkins.

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

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

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

Этот код удалит все истории сборки работы Jenkins.

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

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()
}

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

https://wiki.jenkins-ci.org/display/jenkins/discard)

Перейти к %HUDSON_HOME%\jobs\<projectname> Удалить builds Дир и удалить lastStable, lastSuccessful Ссылки и удалить nextBuildNumber файл.

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

Это будет делать, как вам нужно

При использовании метода консоли скрипта, затем попробуйте использовать следующее вместо, чтобы принять во внимание, если задания входят в контейнеры папок.

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

или

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

Использование консоли скрипта.

Если задания группируются, можно либо дать ему полное имя с пересылающимися скользями:

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

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

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)
    }
  }
}```

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

Откройте файл «NextBuildnumber» и измените номер. После этого перезагрузить конфигурацию Jenkins. Примечание. Файл «NextBuildNumber» содержит следующую сборку NO, которые будут использоваться Jenkins.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top