2008-11-24 15 views
8

Ich habe gerade angefangen, CCNet zu verwenden, und während ich meine Build-Projekte eingerichtet habe, habe ich eine Menge Build-Geschichte durch Versuch und Irrtum gesammelt. Ich möchte diese alten Sachen wirklich nicht behalten, aber ich kann nicht sehen, wo/wie ich sie los werde. Ich bin sicher, das ist eine dumme Frage, und ich entschuldige mich, wenn ich etwas übersehe, was offensichtlich sein sollte. Ich habe RTM und Google für etwa eine halbe Stunde und stocherte in meiner CCNet-Installation herum, aber es springt nicht auf mich. Ich habe die Statusdateien für die Projekte gelöscht (weiß nicht, ob das etwas damit zu tun hat), aber die alten Builds sind immer noch da, wenn ich die Daten eines Projekts aus dem Dashboard herausgebe. Irgendwelche Vorschläge? Vielen Dank.CruiseControl.Net: Wie kann man veraltete Build History löschen?

Beantwortet: Ich hatte das Artefakte-Verzeichnis explizit auf einen Speicherort gesetzt, der nicht unter dem CCNet-Server-Verzeichnis lag und folglich nie wieder hineingeschaut ... und gesucht, Disco, da sind die Build-Histories.

Antwort

5

Angenommen, Sie haben ein Projekt mit dem Namen „Dev“ und Sie haben CCNet in dem Standardverzeichnis installiert haben, werden Sie einen Ordner mit dem Namen:

c: \ Programme \ CruiseControl.NET \ server \ Dev

und eine Dev.state Datei in:

c: \ Programme \ CruiseControl.NET \ server

einfach löschen sowohl den Ordner und die Statusdatei.

+0

Doh! Ich hatte das Artefakte-Verzeichnis explizit auf einen Speicherort gesetzt, der nicht unter dem CCNet-Server-Verzeichnis lag, und folglich nie wieder hineingeschaut ... und nachsehen, und Disco, da sind die Build-Historien. –

+0

Dies könnte etwas veraltet sein - ich fand keinen "Dev" Ordner unter .. \ Server \. Es war ausreichend zu: 1) stoppen Sie den cruisecontrol.net Service 2) löschen Sie die Dev.Statusdatei 3) Neustart des Dienstes 4) erzwinge einen Build, um die "Unbekannte" letzte Buildzeit zu beseitigen. – CrimsonX

2

Was Sie suchen, sind die Ordner "Artefakte". Überprüfen Sie Ihre ccnet.config-Datei für den Tag

Stoppen Sie Ihren Dienst, löschen Sie das Artefakt-Verzeichnis-Ordner, und starten Sie den Dienst.

1

Die Protokolle werden in den Artefaktverzeichnissen unter artifacts \ MyProjectName \ Build \ log * .xml gespeichert.

Die State-Datei speichert Dinge wie das letzte Build-Datum, Uhrzeit, Info.

Am besten, um den Dienst zu beenden, und löschen Sie dann die .State in ProgFiles \ CC.net \ Server und löschen Sie auch die Artefakte \ MyProjectName \ Build \ log. XML-Dateien.

11

Vergessen Sie nicht, dass Sie Artifact Cleanup Publisher verwenden können, um Ihre Build-Geschichte davon abzuhalten, im Laufe der Zeit auf die Größe von Mars zu wachsen.

+0

Ich glaube, das ist die beste Antwort, denn das Löschen des gesamten Ordners unterscheidet sich von der intelligenten Bereinigung, die dieser Herausgeber tatsächlich ausführt. –

0

Wie oben erwähnt, verwenden Sie den Artifact Cleanup Publisher, um die Anzahl der Artefakte auf einem vernünftigen Niveau zu halten.

Wenn Sie eine ganze Reihe von Projekten haben und benötigt eine retrospektive Bereinigung zu tun, können Sie den folgenden Powershell-Skript verwenden, um alte Protokolldateien zu entfernen:

$limit = (Get-Date).AddDays(-60) 

get-childitem -Path D:\Builds -filter MatchMyProjects.* | %{ 
    $projectPath=$_.FullName 
    $logsPath=$projectPath + "\Logs"  
    write-host Removing logs from folder $logsPath 
    Get-ChildItem -Path $logsPath -Force -Filter *.xml | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $limit } | Remove-Item -Force 
} 

Dank dieser Antwort: Delete files older than 15 days using PowerShell

Verwandte Themen