2016-05-27 7 views
1

Ich habe ein Problem, dass ich boost1.58 + neuesten HDF5 + andere Bibliotheken aus der Quelle installieren muss (weil trusty keine aktuelle Version von ihnen hat) auf 0.380.auf Travis zu bauen.Travis Build dauert länger als 50min -> kill

Die manuelle Installation dauert mehr als 50 Minuten, wodurch travis den Job erledigt. Was kann ich tun, um die Bauzeit zu reduzieren oder zu erhöhen? Entweder ich brauche eine Möglichkeit, Pakete von Versionen> Ubuntu 14.04 LTS zu installieren oder irgendwie den Travis-Cache zu verwenden (wie ??)

Danke für die Hilfe!

Antwort

1

Meine Erfahrung mit Boost ist, dass das Problem nicht die Größe ist, es ist die Anzahl der Dateien. Sie können eine minimale Teilmenge von boost bcp erstellen: http://www.boost.org/doc/libs/1_61_0/tools/bcp/doc/html/index.html

Sobald alles installiert ist, werden Sie Ihren Build parallel, wie make --jobs tun? Es gibt nur 2 CPUs auf einer Travis-VM, aber dies kann Ihre Build-Zeit dramatisch verkürzen.

Wir experimentierten auch mit Travis-Abhängigkeits-Caching, aber es erstellt nur eine TAR-Datei und hat uns daher keine Verbesserung gebracht. Es kann nützlich sein, wenn die Download-Zeit für eine der Bibliotheken aufgrund einer langsamen Verbindung signifikant ist. https://docs.travis-ci.com/user/caching/

+0

Mein Build dauert jetzt etwa 52 Minuten (mit zwei Kernen, vorausgesetzt) ​​und wird von Travis getötet ... hm ... Muss ich wirklich auf verschiedene Zweige zurückgreifen, die verschiedene Sachen kompilieren? hm ... – Gabriel

+0

Ah Ich denke, ich kann das mit der Build-Matrix in Travis tun – Gabriel

+0

Tarieren der/usr/local, wo Boost installiert ist, ist keine gute Idee für Caching? – Gabriel

1

aufgeführt avaliable ist können Sie versuchen, Ihren Build Artefakte Cachen (das Zwischen Verzeichnis mit .o-Dateien) sowie die Mtimes der Quelldateien. Da sie sich nur sehr selten ändern, werden sie nicht jedes Mal neu aufgebaut.

mtime_cache ist ein Tool, das Ihnen mit dem Mtime-Cache helfen kann, während Travis CI-Cache den Rest erledigen kann.

Verwandte Themen