Ist es möglich, eine virtualenv für den Einsatz vorab erstellen in hudson baut?

stimmen
2

Ich folge den Umriss der hudson / Python / virtualenv CI - Lösung beschrieben bei heisel.org aber einen Schritt davon ist wirklich Scheuern, und das ist der Teil , wo die virtualenv, die gerade für den CI - Lauf, konfiguriert ist:

pip install -q -E ./ve -r requirements.pip
pip install -q -E ./ve -r requirements-test.pip

Dies geschieht unmäßig viel Zeit zu laufen, und jedesmal, wenn eine Quelldatei Änderungen werden wir wieder das Herunterladen am Ende, was zu einer signifikanten Menge von Datenmengen.

Ist es möglich, Template Workspaces in Hudson zu erstellen, so dass anstelle der Prüfung heraus in einen bloßen Arbeitsbereich sie in eine auscheckt, die vorge vorbereitet?

Veröffentlicht am 14/10/2010 um 21:52
quelle vom benutzer
In anderen Sprachen...                            


3 antworten

stimmen
1

Hier sind ein paar Optionen:

  1. Haben Sie ein Archiv in Ihrer Source-Repository, das in die virtualenv sprengt / pip installieren. Sie werden den virtualenv Ausgangspunkt relocatable vornehmen müssen.

  2. Verwenden Sie, was SCM Option geeignet ist , um nicht auf den Arbeitsbereich auszulöschen zwischen Builds (zB Verwendung von svn update, oder nicht überprüfen Mercurial Clean Build - Option). Dann halten Sie die Befehle in der Build - Skript installieren, sondern legt sie unter einer in ifAussage , so dass sie nur laufen (zum Beispiel) sind , wenn eine .pip_installedDatei nicht vorhanden ist, oder wenn ein Build - Parameter eingestellt.

  3. Sie könnten in der Lage , das bekommen Clone Workspace - Plugin zu tun , was Sie wollen. Aber das ist eine alternative SCM, die ich vermute , Sie wollen wahrscheinlich nicht , da Hudson wird nicht von mehreren SCMs Check - out (siehe diese vorherige Frage für einige Ideen , um diese Arbeit).

Es ist wahrscheinlich auch eine gute Idee, um Ihre pip Konfiguration von einem lokalen Cache-Paketen einzurichten zu ziehen.

pip -f http://localhost/packages/
Beantwortet am 14/10/2010 um 22:56
quelle vom benutzer

stimmen
0

Eine Verbesserung ist die virtualenv in einem Archiv durch die Hash-Wert der Anforderung Datei mit dem Namen zu verpacken. Wenn die Anforderungen Datei seit dem letzten Build nicht geändert hat, extrahiert nur das Archiv in ein leeres Verzeichnis virtualenv. Wenn die Anforderungen Datei geändert hat, wird ein Archiv noch nicht vorhanden ist, so dass Sie laufen installieren pip die Umwelt zu bauen und sie dann in einem neuen Archiv speichern.

Beantwortet am 27/01/2011 um 17:44
quelle vom benutzer

stimmen
0

Wenn Sie einen neuen Venv pro Arbeitsbereich erstellen dann nur müssen Sie wirklich alle deps installiert werden, nachdem sich am Anfang so nachfolgende sind viel schneller aufbaut. Siehe meinen Beitrag für ein Skript, das ich schrieb, um zu helfen:

"Pretty" Continuous Integration für Python

Beantwortet am 04/05/2011 um 16:11
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more