Aus dem Joel-Test :
Können Sie einen Build in einem Schritt erstellen?
Ich muss sagen, dass ich nicht kann. Ich arbeite derzeit an einer Web-App mit einer Tabellenkalkulationsliste von Elementen, die ausgeführt werden müssen, um bereitgestellt zu werden. Meine Frage ist also, wie ich das automatisieren kann . Muss es organisationsweit sein? Tipps / Techniken?
tools
builds
automation
Billy Bob
quelle
quelle
Antworten:
Make kann den Build-Prozess in einem Schritt automatisieren. Make kann so ziemlich alles machen, was du willst. Ich bin nicht sicher, warum Sapporo glaubt, dass Make nur für C / C ++ gilt. Mit make können Sie jeden Befehlstyp ausführen. Es ist nicht einmal an das Programmieren gebunden, obwohl dies normalerweise der Fall ist.
quelle
Abhängig von Ihrer Umgebung sollten Sie sich Make (C / C ++), Ant / Maven (Java) und Gradle (Groovy) ansehen. Die Chancen stehen gut, dass es eine beliebte Lösung für Ihre Umgebung gibt.
quelle
Bei der Arbeit verwenden wir FinalBuilder , wodurch es einfach ist, ein Skript zur Automatisierung des gesamten Prozesses einzurichten: Code auschecken , alles erstellen, Tests ausführen, Bereitstellungspaket erstellen usw.
Es ist ein sehr gutes Werkzeug und kürzlich mit dem Dr. Dobbs Jolt Award für Change- und Konfigurationsmanagement-Tools ausgezeichnet.
quelle
Sicher gibt es eine Möglichkeit, dies zu automatisieren. Mit Tools wie Chef kann das Einrichten eines brandneuen, frisch installierten Servers so einfach sein wie:
In meinem Fall sind einige Schritte, die von diesem einzelnen Befehl ausgeführt werden:
Ich bin nicht sicher, wie Chefkoch in Ihrer Umgebung abschneidet, da die Windows-Unterstützung als "vorläufig" aufgeführt ist, aber für UNIX-basierte Systeme sind es die Knie der Bienen.
Puppet ist ein ähnliches System, das etwas älter als der Koch ist und möglicherweise eine bessere Windows-Unterstützung bietet.
quelle
Mit Maven in der Java-Welt ist das ganz einfach
In unserer Konfiguration erledigt dies den gesamten erforderlichen Aufbau der WAR-Datei (bei Bedarf die JAR-Abhängigkeiten einbeziehen), die Bereitstellung auf dem Dev-Webserver und die Erstellung von gespeicherten Testdaten in der Dev-Datenbank. Sobald dies erledigt ist, führt Maven die umfassenden Funktionstests durch SeleniumRC durch, um zu überprüfen, ob die Anwendung funktioniert.
Mit diesem einzigen Befehl wird die Anwendung vollständig auf dem Entwickler-Server-Cluster implementiert, sodass andere Entwickler sofort mit ihr arbeiten können (vorausgesetzt, sie hat die Tests bestanden). Es ist ungewöhnlich, dass eine Dev-Bereitstellung fehlschlägt, da die Entwickler überprüft haben, dass sie lokal funktioniert
mvn clean install
.Das Snapshot-Artefakt (WAR) wird dann in das Maven-Repository kopiert, um es mit anderen Entwicklern zu teilen (gemäß dem Standardverhalten von Maven
deploy
).OK, aber Sie haben nur einen Snapshot für Entwickler bereitgestellt. Was ist mit Test und Produktion?
Die Verteilung auf die Test- und (späteren) Produktionsserver erfolgt über den Maven-Release-Prozess, den wir gerne manuell abwickeln, um sicherzustellen, dass jemand auf verdächtige Ausgaben achtet. Tester arbeiten nur mit freigegebenen Artefakten, nicht mit Schnappschüssen.
Sobald es veröffentlicht ist, wird ein einfaches Build-Skript verwendet, um die WAR-Datei an den Testserver-Cluster zu senden, wobei wiederum jemand den Prozess überwacht, um sicherzustellen, dass nichts schief geht.
Schließlich, nachdem alle Tester zufrieden sind, wird die unveränderte WAR-Datei per SFTP an den Failover-Produktionsserver-Cluster übertragen, wobei jemand ein wachsames Auge hat und im Katastrophenfall eine sofortige Rollback-Position einnimmt.
quelle
Ich dachte, ich könnte das mal bei unserem Joel-Test überprüfen, also ...
Ich habe einen Build-Server in Python erstellt, der mit Pychron automatisiert wurde .
Der Code wurde über die Befehlszeile mit VSS synchronisiert und mit borland make erstellt (die meisten IDEs erstellen make-Dateien für Sie, unabhängig davon, ob sie diese als solche bezeichnen oder nicht. re MSBuild XML-Dateien und Sie können MSBuild verwenden) und die Fehler wurden in eine XML-Datei gestellt, die ich gerade hinzugefügt habe.
Also .. Schreiben Sie einfach eine Batch-Datei und machen Sie diese Dinge.
quelle