2012-04-06 21 views
0

Ich fand dies: Plugin to commit hudson build artifact aber nach ~ 5-6 Stunden probiert jede Kombination von Einstellungen vorstellbar war ich nicht in der Lage, erfolgreich auf unserer https 'svn zu verpflichten.Commit zu Tortoise SVN nach Hudson bauen?

Ich überlege mir, dies durch eine Batch-Datei - aber keine Ahnung, ob es möglich ist, das Passwort zu verschleiern ... wenn es nicht so ist, ist dies auch nicht wirklich eine Option.

Ist jemand erfolgreich dabei? Könnte einen Ratschlag gebrauchen .. danke.

Antwort

0

Am Ende benutzte ich nur ein Batch-Skript, um meinen Zielordner auszuchecken, Dateien in diesen Ordner zu kopieren, sie zu SVN hinzuzufügen und dann die Dateien zu committen. Der einzige Haken war die Bereitstellung von Anmeldeinformationen. Meine Lösung bestand darin, sich bei der Maschine, auf der Hudson ausgeführt wurde, anzumelden und sie einmal manuell zu committen. Dadurch konnte ich meine Anmeldedaten auf dem Build-Server verschlüsselt speichern. Im Idealfall sollten Sie für diesen Schritt ein Konto mit eingeschränktem Zugriff verwenden.

0

Das Hauptproblem ist, dass Tortoise nicht mit einem "echten" SVN-Befehlszeilenclient kommt. Die Befehlszeile kann kaum übergeben werden - stattdessen öffnet sie ein Fenster und fordert Sie auf, weitere Informationen einzugeben.

Haben Sie sich die Maven release plugin angesehen? Sie verwenden es mit einer SVN-Befehlszeile (nicht Tortoise). Sie können Maven passwords verschlüsseln. Obwohl ich diese erfolgreich für Nexus verwendet habe, habe ich noch nicht versucht, sie für den Zugriff auf SVN zu verwenden.

0

Ich würde von Subversion erstellte Dateien nicht in das Subversion-Repository zurückversetzen. Das verlangt nur Ärger. Sobald Sie etwas an Subversion übergeben haben, bleibt es für immer dort. Sie können die veralteten Informationen niemals entfernen.

Textdateiänderungen sind nicht so schlecht, weil sie sich sehr gut unterscheiden, und Subversion speichert jede Revision im diff-Format. Allerdings können Binärdateien nicht so gut differieren. Wenn Ihre binäre Ausgabe 500 MB groß ist, fügt jedes Commit 500 MB in Ihr Subversion-Repository ein. Tun Sie dies mit Hudson, und tun Sie dies nach jedem Build, und Sie sprechen in weniger als einem Jahr über hunderte Gigabyte an Daten - und die meisten davon werden veraltete Versionen Ihres Codes sein, die Sie einfach nicht brauchen .

Verwenden Sie Hudson selbst, um Ihre Builds zu speichern. Einer der Schritte in Ihrem Build-Prozess ist Archivieren Sie die Artefakte. Ich verwende einfach meine Build-Datei, um alle Artefakte zu kopieren, die ich in einem target/archive-Verzeichnis speichern möchte, und Hudson speichert das.

Wir definieren den Hudson Job Löschen Altbauten, aber lassen Sie die Tage und Maximum zu halten leer zu halten. Stattdessen klicken wir auf die Schaltfläche "Advance" und geben an, wie lange die Artifacts bleiben soll. Auf diese Weise löschen wir nie einen Build, aber wir behalten den Hudson-Server mit ausreichend Platz.

In einem bestimmten Build können Sie auf klicken Halten Sie diese Build für immer, und es wird die Artefakte speichern, anstatt sie zu löschen. Dadurch können Sie die Artefakte, die veröffentlicht wurden, behalten, aber die täglichen Build-Sachen entfernen, die Sie nicht mehr interessieren.

Sie können sogar wget oder curl verwenden, um die Artefakte zu erhalten und sie bereitzustellen. Das machen wir mit unseren Deploy-Skripten.

Wenn du schicker werden willst (und wer nicht), lege deine Build-Artefakte in ein Maven-Repository. Sie können dies auch dann tun, wenn Sie Maven nicht für Ihren Build-Prozess verwenden. Auch hier werden Ihre Artefakte gespeichert, Sie können jedoch auch diejenigen löschen und abschneiden, die Sie nicht behalten möchten.

Wenn Sie wirklich, wirklich wollen, um Ihre Build-Artefakte in Subversion speichern, können Sie tun, was Sie mit der batch Datei haben, und verwenden Sie svn co und svn commit -m"Some sort of message %BUILD_NUMBER%" Befehle zu tun. Sobald jedoch etwas in deinem Subversion-Repository ist, ist es sehr, sehr schwierig, es zu entfernen. Bereite dich darauf vor, durch die Lücken des Festplattenspeichers zu brennen.

0

Versuchen Sie, das folgende Skript in "Shell ausführen" unter configure hinzuzufügen.

 

echo "Committing build.number file to SVN.." 
cd $APPROPRIATE_PATH 

svn commit -m "some svn commit comment" MyApp/etc/build/build.number 

echo "Build file committed "