Frage

ich die Konfiguration eines meines hudson baut aktualisiert. Die Build-Geschichte ist synchron aus. Gibt es eine Möglichkeit, meine Build-Geschichte zu löschen?

Bitte und danke

War es hilfreich?

Lösung

Wenn Sie Hudson / Reload Konfiguration von Datenträger verwalten klicken, wird Hudson neu laden alle die Build-History-Daten.

Wenn die Daten auf der Festplatte ist durcheinander, werden Sie auf Ihre% HUDSON_HOME% \ Arbeitsplätze gehen müssen \ << em> Projektname > Verzeichnis und zur Wiederherstellung der Build-Verzeichnisse als sie eigentlich sind sein. Dann nachladen Konfigurationsdaten.

Wenn Sie einfach sind zu fragen, wie alle Build-Geschichte zu entfernen, können Sie einfach löschen die einer nach dem anderen über die Benutzeroberfläche erstellt, wenn es nur wenige sind, oder gehen Sie in das Verzeichnis% HUDSON_HOME% \ Jobs \ << em> Projektname > Verzeichnis und löschen sie alle Unterverzeichnisse dort - sie entsprechen die Builds. Danach den Dienst neu starten, damit die Änderungen wirksam werden.

Andere Tipps

Verwenden Sie das Skript Konsole (Manage Jenkins> Script Console) und so etwas wie dieses Skript bulk ein Build Geschichte Job löschen https://github.com/jenkinsci/jenkins-scripts/blob/master/scriptler/bulkDeleteBuilds.groovy

Das Skript geht davon aus Sie wollen nur einen Bereich löschen von Builds. So löschen Sie alle für einen bestimmten Job baut, verwenden Sie diese (getestet):

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

Diese Antwort ist für Jenkins

  1. Gehen Sie zu Ihrer Jenkins Startseite → Manage Jenkins Script Console

     Gib Bild Beschreibung hier

  2. Führen Sie das folgende Skript gibt. Ändern copy_folder zu your project name

Code:

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

Mein Beitrag

Hier ist eine weitere Option. Löschen die Builds mit cURL

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

Die oben Löschungen bauen # 1 bis # 56 für Job myjob.

Wenn die Authentifizierung auf der Jenkins-Instanz aktiviert ist, ein Benutzername und eine API-Token muss wie folgt angegeben werden:

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

Die API-Token von der /me/configure Seite in Jenkins geholt werden müssen. Klicken Sie einfach auf den „Show API Token ...“, um sowohl die Namen der Benutzer angezeigt werden und die API-Token.

Edit:. Man könnte über doDeleteAll von doDelete in dem URLs ersetzen muß, um diese Arbeit zu machen, abhängig von der Konfiguration oder der Version von Jenkins verwendet

Sie können die Projektkonfiguration ändern vorübergehend nur das letzte 1 Build, laden Sie die Konfiguration (das ist die alte baut Wegwerfen soll) zu speichern, dann die Konfiguration ändern Sie die gewünschten Wert einstellen wieder.

Hier ist, wie ALL FOR ALL JOBS löschen BAUT ...... die Jenkins Scripting verwenden.

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

Dies ist die beste Option zur Verfügung.

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

Dieser Code wird alle Jenkins Job Build-Geschichte löschen.

Wenn Sie die Build-Geschichte von MultiBranchProject (z Pipeline) löschen möchten, gehen Sie zu Ihrem Jenkins Startseite → Jenkins → Skript-Konsole verwalten und das folgende Skript ausführen:

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

Eine weitere einfache Möglichkeit sauber aufbaut, ist durch Hinzufügen des Discard Old Plugin am Ende Ihrer Jobs. Legen Sie eine maximale Anzahl von und dann zu speichern, baut wieder den Auftrag ausführen:

https://wiki.jenkins-ci.org/ Anzeige / JENKINS / Verwerfen + Alt + Bauen + Plugin

Zu den %HUDSON_HOME%\jobs\<projectname> entfernen builds dir und entfernen lastStable, lastSuccessful Links und Entfernen nextBuildNumber Datei.

Nach dem obigen Schritt tun gehen auf untenstehenden Link von UI
Jenkins-> Manage Jenkins -> Konfiguration neu laden aus Datei

Es wird tun, wie Sie benötigen

Bei Verwendung dann das Script Console Methode versuchen, die folgenden statt mit zu berücksichtigen, wenn Aufträge in den Ordner Container gruppiert werden.

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

oder

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

Mit Script-Konsole.

Falls die Jobs gruppiert sind, kann man sich entweder mit Schrägstrichen einen vollständigen Namen zu geben:

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

oder durchqueren die Hierarchie wie folgt aus:

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

direkt Löschen von Dateisystem ist nicht sicher. Sie können die folgenden Skript ausführen, um alle von allen Arbeitsplätzen (rekursiv) bauen zu löschen.

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

Wechseln Sie zu: %JENKINS_HOME%\jobs\jobName

Öffnen Sie die Datei „nextBuildNumber“ und die Nummer ändern. Nach dieser reload Jenkins Konfiguration. Hinweis: „nextBuildNumber“ Datei enthält den nächsten Build nicht, dass wird von Jenkins verwendet werden

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top