PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Linux Buildserver (Linux/Cross compiling Windows/Java)



Jaus
13.04.09, 09:15
Hallo zusammen,

ich habe mir vor einiger Zeit einen schicken Server von Sun fuer meine diversen Programmierprojekte zugelegt. Das Ganze ist ein Sun SPARC Enterprise T1000 Server. Auf diesem laeuft zurzeit Solaris 10, was nun auf Linux gewechselt werden soll - Auf eine SPARC Linux Distribution.

Zudem moechte ich aus diesem Server einen Buildserver bauen, um meine Notebooks und Workstations von den Buildprozessen zu entlasten. Hat schon mal jemand Erfahrungen damit bei Linux machen duerfen?

Es soll folgendes gemacht werden koennen: Der Sourcecode liegt auf einem NFS-Share (evtl. auch SVN repo) und die builds sollen auf einen anderen NFS-Share gelegt werden. Alle 60 Minuten soll ein neuer Build aller Projekte, bei denen sich etwas veraendert hat, gebaut werden (ausserdem soll ein manuelles Anstossen dieses Buildprozessen moeglich sein).

In der Programmiersprache C++ soll sowohl Linux, als auch Windows per cross-compiling unterstuetzt werden. Habe bereits vorher mit cross compiling gearbeitet. Das sollte also kein Problem sein. Gibt es eventuell hier die Moeglichkeit ein continues integration tool zu benutzen, das auch cross compiling unter Linux beherrscht?

Java soll sogar direkt in eine continues integration Loesung gebracht werden. Hier hatte ich Hudson oder Aehnliches im Hinterkopf.

Falls Fehler auftauchen sollten im Buildprozess sollte eine Mail an den jeweiligen Benutzer abgesandt werden mit dem build-log und einer Nachricht, dass er besser nochmal seinen Code checken sollte. Ausserdem sollten Statistiken verfuegbar sein - Vielleicht ein kleiner Overview welche Versionen bei welchen Projekten zurzeit nicht funktionieren (Windows 32bit, Windows 64bit, Linux 32bit, usw...)

Hat jemand bereits in diese Richtung mal ein Projekt laufen lassen? Waere super nett, wenn mir da jemand Tips, Anregungen oder die ein oder andere Hilfestellung geben koennte :)

Gruesse,
Jaus

oziris
13.04.09, 18:58
Ich habe es selbst noch nie benutzt, aber eigentlich benutzt man distcc, um einzelne Geräte beim compilieren zu entlasten, in dem die Last auf mehrere verteilt wird.

Das ist jetzt vielleicht keine konkrete Antwort zu Deiner Fragestellung, sondern mehr eine Anregung. Ich hoffe es hilft.

BedriddenTech
13.04.09, 22:17
Wieviel davon soll den Homebrew sein, und wie sehr willst Du Dich auf andere Lösungen stützen? Du könntest Dir ja bspw. Koji & Co mal ansehen, die vom Prinzip her etwas ähnliches tun, aber natürlich RPMs am Ende ausspucken. Wobei RPMs natürlich fürs Cross-Compiling geeignet sein sollten. ;) Allerdings ist da das Frontend natürlich auch dabei.

Ich schätze, daß, wenn Du Hudson nimmst, Du nicht drum herum kommst, eine kleine Menge von Skripten zu schreiben, die Dir das Untersuchen der Projekte, das Checkout, und das Anstoßen des eigentlichen Build Process abnehmen. Dazu, und da hat oziris recht, solltest Du sowas wie distcc oder ccache mit einbauen, um bei Bedarf einfach mehrere Maschinen in den Prozess mit einbeziehen zu können.

marce
14.04.09, 06:24
Du könntest Dir auch mal http://cruisecontrol.sourceforge.net/ anschauen...

Jaus
15.04.09, 07:35
Hallo zusammen,

danke schon einmal fuer die Tips. Ich werde mir nachher mal alles etwas detailierter anschauen. Besonders CruiseControl macht schon mal einen sehr guten Eindruck. Das sollte man auch recht fix um eigene Plugins erweitern koennen, falls etwas fehlen sollte.

Melde mich dann spaeter wieder, wenn ich mir alles etwas detailiert angeschaut habe - Nun wartet erst einmal Arbeit auf mich :(

Danke schon mal und weitere Tips sind natuerlich ebenfalls sehr willkommen :)

Jaus
17.04.09, 20:15
Ich muss ehrlich dazu sagen, dass Cruisecontrol echt genial ist. Das hat schon relativ viel von dem, was ich so haben wollte... Gibt es dafuer noch irgendwo ein paar Plugins oder Extensions? Man koennte zwar alles selbst schreiben, aber warum die Muehe machen, wenn bereits jemand zuvor sich damit einige Naechte um die Ohren geschlagen hat :)

Fuer weitere Loesungen bin ich uebrigens stets offen...

Ich denke mal, dass es aber spaeter eher eine Mischloesung aus Software und eigenen scripts werden wird, da es wohl kein Produkt geben wird, was genau diese Anforderungen trifft...

marce
17.04.09, 20:19
ich kann mal bei unserem Cruiser nachfragen, ob er da alles selbst gewurschtelt hat oder auf fertiges zurückgegriffen hat - wenn ich mir aber so anschaue, was da alles so gemacht wird und überlege, daß solche Systeme eigentlich immer auf intimste Bedürfnisse zugeschnitten sind - wird's nicht allzuviel geben...

Jaus
17.04.09, 20:22
ich kann mal bei unserem Cruiser nachfragen, ob er da alles selbst gewurschtelt hat oder auf fertiges zurückgegriffen hat - wenn ich mir aber so anschaue, was da alles so gemacht wird und überlege, daß solche Systeme eigentlich immer auf intimste Bedürfnisse zugeschnitten sind - wird's nicht allzuviel geben...
Habe ich schon fast befuerchtet ;)

Du kannst direkt mal nachfragen, falls es optimiert wurde bzw. customized ist, bei welcher Firma das ggf. gemacht wurde. Ich wuerde mich das lieber etwas kosten lassen, als mich da naechtelang selbst ranzusetzen...

solarix
17.04.09, 21:12
Hallo zusammen,

Enterprise T1000 Server. Auf diesem laeuft zurzeit Solaris 10, was nun auf Gruesse,
Jaus

Nur so als Anregung!

Die T1000 ist kein Rechner auf dem du compilieren willst. Dafür ist die Niagara CPU nicht gebaut. Das Teil ist zum compilieren mit das ungeeignetste was Du Dir überhaupt anschaffen konntest.

Als Webserver macht die Kiste was her, aber nicht als Buildserver das ist verschenktes Geld und verschenkte Ressourcen. Die hat beim compilieren auch nicht mehr zu bieten als eine Ultrapsarc II und die sind schon extrem alt.

Mit dem Ding als Buildserver wirst Du nicht glücklich.

Jaus
17.04.09, 22:42
Nur so als Anregung!

Die T1000 ist kein Rechner auf dem du compilieren willst. Dafür ist die Niagara CPU nicht gebaut. Das Teil ist zum compilieren mit das ungeeignetste was Du Dir überhaupt anschaffen konntest.

Als Webserver macht die Kiste was her, aber nicht als Buildserver das ist verschenktes Geld und verschenkte Ressourcen. Die hat beim compilieren auch nicht mehr zu bieten als eine Ultrapsarc II und die sind schon extrem alt.

Mit dem Ding als Buildserver wirst Du nicht glücklich.
Na ja ich habe viel mehr das Teil fuer fast nichts bekommen und nun steht die Kiste hier bei mir nur herum. Ich selbst bin Mitarbeiter von Sun Microsystems NL und meine Kollegen und ich bekommen regelmaessig eine Rundmail von Maschinen, die in der Try and Buy Aktion zurueckgegeben wurden. Als Option steht dann offen diese Maschinen als gebraucht zu vermitteln. In diesem Falle habe ich sie an mich selbst vermittelt ;) Von daher bin ich schon recht gluecklich damit. Dass das nicht der perfekte Buildserver sein wird, ist klar, aber es ist immer noch besser, als 1. die Kiste hier ungenutzt im Rack liegen zu lassen und 2. die alte Loesung weiterlaufen zu lassen.

solarix
17.04.09, 23:55
t die Kiste hier bei mir nur herum. Ich selbst bin Mitarbeiter von Sun Microsystems NL


Die SUN Welt ist klein .... . ;)



und meine Kollegen und ich bekommen regelmaessig eine Rundmail von Maschinen, die in der Try and Buy Aktion zurueckgegeben wurden. Als Option steht dann offen diese Maschinen als gebraucht zu vermitteln. In diesem Falle habe ich sie an mich selbst vermittelt ;) Von daher bin ich schon recht gluecklich damit. Dass das nicht der perfekte Buildserver sein wird, ist klar, aber es ist immer noch besser, als 1. die Kiste hier ungenutzt im Rack liegen zu lassen und 2. die alte Loesung weiterlaufen zu lassen.

Naja kommt drauf an was die alte Lösung den ist, aber durch die schwache FPU und die bekannten Probleme ist das keine glückliche Lösung da ist man mit jeder Opteron Lösung besser bedient. Wir haben T2000 und Konsorten im
Alltag im Einsatz mit Sun Cluster und Oracle. Gut die T2000 hat wesentlich mehr Power, aber grundsätzlich ausser als DB, Sun Ray oder Webserver Lösung sind die Dinger gerade für Entwicklungsarbeit nicht zu gebrauchen.
Die Niagara Kisten sind Arbeitstiere nicht mehr und nicht weniger.

Da würde ich mir lieber eine X2100 oder was ähnliches als Buildserver reinstellen, die sind auch bezahlbar. Gut Du musst es selbst wissen, aber ich persönlich würde die Kiste lieber irgendwo housen lassen um Mailserver, Webpages mit DBs laufen zu lassen. IMHO wurde mal Ubuntu und Rothut für die Dinger zertifiziert, aber der Ubuntu Port ist so gut wie tot, da bleibt Dir nur noch RHEL.

Was ich halt immer wieder feststelle, auf Sparc mach Solaris einfach am meisten Spass. Persönlich halte ich Linux auf Sparc für Quatsch.

Jaus
18.04.09, 07:16
Also ich werde nun erst einmal alles auf der Kiste einrichten um zu schauen wie gut oder schlecht es nun in Endeffekt laeuft. Als dauerhafte Loesung werde ich dann wohl eher die gleiche Konfiguration auf einen x64 Server mit Xeon oder Opteron CPU aufspielen. Aber solange ich den nicht habe und der T1000 hier nur herumsteht, lasse ich es erst einmal so laufen :) Ist ausserdem ganz nett zum Herumspielen.