Jak wyczyścić historię budowania Jenkins/Hudson?

Ostatnio zaktualizowałem konfigurację jednej z moich kompilacji Hudsona. Historia budowy nie jest zsynchronizowana. Czy istnieje sposób, aby wyczyścić moją historię budowy?

Proszę i dziękuję

Author: Sergio, 2010-08-04

14 answers

Jeśli klikniesz Zarządzaj konfiguracją Hudsona / Przeładuj z dysku, Hudson przeładuje wszystkie dane historii kompilacji.

Jeśli dane na dysku są pomieszane, musisz przejść do katalogu %HUDSON_HOME%\jobs\ projectname > i przywrócić katalogi kompilacji tak, jak powinny. Następnie przeładuj dane konfiguracyjne.

Jeśli po prostu pytasz, Jak usunąć całą historię kompilacji, możesz po prostu usunąć Kompilacje jeden po drugim za pomocą interfejsu użytkownika, jeśli jest ich tylko kilka, lub przejdź do %HUDSON_HOME% \ jobs\projectname > katalog i usuń wszystkie tam podkatalogi -- odpowiadają one kompilacjom. Następnie uruchom ponownie usługę, aby zmiany weszły w życie.

 51
Author: William Leara,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-17 09:37:46

Użyj konsoli skryptu (Manage Jenkins > Script Console) i czegoś podobnego do tego skryptu, aby masowo usunąć historię budowania zadaniahttps://github.com/jenkinsci/jenkins-scripts/blob/master/scriptler/bulkDeleteBuilds.groovy

Ten skrypt zakłada, że chcesz usunąć tylko zakres kompilacji. Aby usunąć wszystkie Kompilacje dla danego zadania, użyj tego (tested):

// 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()
 111
Author: rjohnston,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-14 23:46:02

Ta odpowiedź jest dla Jenkins

  1. Przejdź do strony głównej Jenkins → Zarządzaj JenkinsScript Console

    Tutaj wpisz opis obrazka

  2. Uruchom tam następujący skrypt. Zmień copy_folder na your project name

Kod:

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

Mój post

 76
Author: Nayana Adassuriya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-17 05:27:30

Jest jeszcze jedna opcja: Usuń Kompilacje za pomocą cURL.

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

Powyższe usuwa build #1 do # 56 dla job myJob.

Jeśli uwierzytelnianie jest włączone na instancji Jenkins, nazwa użytkownika i token API muszą być podane w następujący sposób:

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

Token API musi zostać pobrany ze strony /me/configure w Jenkins. Wystarczy kliknąć na "Pokaż Token API..."przycisk wyświetlający zarówno nazwę Użytkownika, jak i token API.

Edit: w powyższych adresach URL może być konieczne zastąpienie doDeleteAll przez doDelete na niech to zadziała, w zależności od konfiguracji lub użytej wersji Jenkinsa.

 22
Author: Erwan Legrand,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-22 10:02:18

Oto jak usunąć wszystkie buildy dla wszystkich zadań...... używając skryptów Jenkinsa.

def jobs = Jenkins.instance.projects.collect { it } 
jobs.each { job -> job.getBuilds().each { it.delete() }} 
 10
Author: ort11,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-25 11:22:02

Możesz tymczasowo zmodyfikować konfigurację projektu, aby zapisać tylko ostatnią 1 kompilację, przeładować konfigurację (która powinna zniszczyć stare Kompilacje), a następnie ponownie zmienić ustawienie konfiguracji na żądaną wartość.

 9
Author: the_mandrill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-04 22:16:20

Jeśli chcesz wyczyścić historię budowania MultiBranchProject (np. pipeline), przejdź do strony głównej Jenkins → Manage Jenkins → Script Console i uruchom następujący skrypt:

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()
}
 5
Author: Marin Ivanov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-15 10:45:34

Ten jest najlepszą dostępną opcją.

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

Ten kod usunie całą historię budowania Zadań Jenkinsa.

 4
Author: Rahul khanvani,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-03 08:07:31

Używanie Konsoli Skryptów.

W przypadku grupowania zadań możliwe jest nadanie mu pełnej nazwy z ukośnikami do przodu:

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

Lub przemierzaj hierarchię w następujący sposób:

def folder = Jenkins.instance.getItem("folder_name")
def job = folder.getItem("job_name")
job.getBuilds().each { it.delete() }
job.nextBuildNumber = 1
job.save()
 2
Author: ATrubka,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-08 16:30:23

Usuwanie bezpośrednio z systemu plików nie jest bezpieczne. Możesz uruchomić poniższy skrypt, aby usunąć wszystkie Kompilacje ze wszystkich zadań ( rekurencyjnie).

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)
    }
  }
}
 2
Author: Aytunc Beken,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-12 14:24:54

Innym łatwym sposobem czyszczenia kompilacji jest dodanie starej wtyczki Odrzuć na końcu swoich zadań. Ustaw maksymalną liczbę kompilacji do zapisania, a następnie uruchom zadanie ponownie:

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

 1
Author: Rutger Huijsmans,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-03 13:11:34

Przejdź do katalogu %HUDSON_HOME%\jobs\<projectname> Usuń katalog builds i usuń linki {[2] } oraz usuń plik nextBuildNumber.

Po wykonaniu powyższych kroków przejdź do poniższego linku z interfejsu
Jenkins - > Manage Jenkins - > Reload Configuration from Disk

Zrobi to, czego potrzebujesz

 1
Author: Manish Agrawal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-03 07:51:26

Jeśli używasz metody Script Console, spróbuj użyć poniższej metody, aby wziąć pod uwagę, czy zadania są grupowane w kontenery folderów.

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

Lub

def jobName = "My Folder/Your Job Name
def job = Jenkins.instance.getItemByFullName(jobName)
 1
Author: RampantBadger,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-24 15:08:12

Przejdź do: %JENKINS_HOME%\jobs\jobName

Otwórz plik "nextBuildNumber" i zmień numer. Po tym przeładowaniu Konfiguracja Jenkinsa. Notatka: plik "nextBuildNumber" zawiera następny build no, który będzie używany przez Jenkins.

 0
Author: Nitish,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-08 20:16:58