Ich muss den Build-Verlauf von Jenkins löschen und bereinigen:Gestern-Vor 2 Tagen-Alle Builds. Wie kann ich das in Jenkins machen?
Antwort1
Löschen Sie einen Jenkins-Build über die GUI.
Gehen Sie in den Build, den Sie löschen möchten, und klicken Sie auf die Schaltfläche in der oberen rechten Ecke. Delete this build
Wenn Sie den Jenkins-Buildverlauf bereinigen und denBuild-NummerZurück zu 1. Sie können ein einfaches Skript in der Jenkins Script Console ausführen.Quelle
Gehe zu JenkinsSkriptkonsole.
Gehen Sie zu Ihrer Jenkins-Homepage ->Jenkins verwalten->Skriptkonsole.
Führen Sie dieses Skript zum Bereinigen und Zurücksetzen aus.
Kopieren Sie dieses Skript, fügen Sie es in den Textbereich Ihres Konsolenskripts ein und ändern Sie es
"copy_folder"
in den Projektnamen, dessen Verlauf Sie löschen möchten. Klicken Sie dann aufLaufenTaste.def jobName = "copy_folder" def job = Jenkins.instance.getItem(jobName) job.getBuilds().each { it.delete() } job.nextBuildNumber = 1 job.save()
Wenn Sie eine Multibranch-Pipeline oder Ordner verwenden, muss die zweite Zeile des obigen Skripts wie folgt geändert werden:
def jobName = "path/to/your/jenkins/pipeline/master" def job = Jenkins.getInstance().getItemByFullName(jobName, Job.class)
Eine andere Möglichkeit zum Entfernen alter Builds oder Jobs ist die Befehlszeile.
Melden Sie sich bei der Jenkins-Befehlszeile an.
Um einen gesamten Job zu entfernen und den Verlauf zu erstellen, entfernen Sie den Job-Ordner, z. B.:
rm -rf jobs/jobname
So zeigen Sie den Build-Verlauf an:
$ls jobs/jobname/builds 1409 1411 1413 1415 1417 1419 1421 1423 1425 923 963 974 985 letzter fehlgeschlagener Build letzter erfolgreicher Build letzter erfolgloser Build 1191 1334 1348 1379 1381 1383 1406 1408 1410 1412 1414 1416 1418 1420 1422 1424 913 962 973 978 987 letzter stabiler Build letzter instabiler Build Legacy-IDs
Um ausgewählte Builds zu entfernen, entfernen Sie das Buildnummernverzeichnis, zB:
rm -rf jobs/jobname/builds/97* jobs/jobname/builds/13*
Vergessen Sie nicht den letzten Schrittbeim Entfernen oder Bearbeiten von Dateien unter Jenkins.
Nach dem Entfernen von Jobs oder Builds aus dem Dateisystem müssen Sie zuJenkins verwaltenin der Jenkins-GUI und klicken Sie aufKonfiguration von der Festplatte neu laden.
Hinweis: Das Jenkins-Stammverzeichnis kann sich an /var/jenkins_home
einem /var/lib/jenkins
anderen Ort befinden.
Antwort2
Die obige Erklärung ist großartig. Sie behandelt die verschiedenen Möglichkeiten zum Bereinigen des Verlaufs, der Jobs usw.
Nur eine Idee, die auf dem oben Gesagten aufbaut: Umschließen Sie die Befehlszeilenanweisungen zum Entfernen mit einem Jenkins-Job und parametrisieren Sie die Build-Nummern, z. B. geben Sie eine CSV in einem Job-Parameter an und analysieren Sie sie im Shell-Skript, das dem Job zugeordnet ist, um die Ziel-Builds zu entfernen. Und/oder fügen Sie einen Kontrollkästchenparameter DELETE_ALL_BUILDS hinzu und aktivieren Sie ihn mit einer IF-Anweisung im Skript – wenn ausgewählt, entfernen Sie alle Builds. Sie können auch den Namen des Jobs parametrisieren, z. B. einen Parameter namens JOB_NAME angeben und den Wert im Skript interpolieren, z. B.:
rm -rf jobs/${JOB_NAME}/builds/${BUILD_NUM}*
Antwort3
Sie müssen ein Jenkins-Administrator sein, um diese Aufgabe auszuführen. Unten sehen Sie ein Beispiel für den Jenkins-Job 305.
- Öffnen Sie Jenkins → wählen Sie den Zweig aus, den Sie löschen möchten → wählen Sie Build History
- Option „Build History“ → Roten Kreis des fehlerhaften Builds auswählen (#305)
- Jenkins-Jobfehler→ Wählen Sie „Build löschen“:
- Bestätigungsmeldung vor dem Löschen → Zum Löschen „Ja“ auswählen.
Antwort4
# cd to your Jenkins install directory with the userid that has "permissions"
sudo bash ( if you have to )
# My installation is like this, so go wherever you placed yours:
cd /reps/jenkins/home/jobs/TestPlaywrightSuite/builds
# Touch these two files to exclude from the auto search below
# but since these are regular files, they should be excluded from
# the find command anyway
touch permalinks
touch legacyids
# find directories older than 7 days and delete on one command
find . -type d -mtime +7 -exec rm -rf {} \;