Ich bin auf der Suche nach Empfehlungen für die automatische Erstellung und Bereitstellung von Projekten.
Unsere aktuelle Entwicklungsumgebung verwendet ASP.NET, SVN, CCNET und ein MSBuild-Skript für den Build des Dev-Servers. Ich dachte daran, zu Cruise statt CCNET zu wechseln, obwohl ich mir nicht sicher bin, ob mir das noch etwas gibt, was ich noch nicht habe.
Was ich automatisieren möchte, ist der Prozess von der Erstellung eines automatisierten Builds bis zur Aktualisierung der Live-Site mit den neuen Änderungen. Site-Updates können Updates der Basis-Site sowie Client-Updates enthalten, bei denen es sich um Code- und / oder Datenbank-Änderungen handeln kann. Daher muss der Prozess flexibel genug sein, um mit diesen Szenarien umgehen zu können.
Eine meiner Inspirationsquellen dafür kam von dieses Video sowie die endlosen Stunden, die ich jeden Monat mit Updates verbracht habe.
Für kleinere oder persönliche Projekte würde ich empfehlen, etwas wie die kostenlose (und ausgezeichnete) TeamCity von JetBrains. Unit-Test-Automatisierung, kontinuierliche Integration und Regeln für das, was nach einem Build passiert (einschließlich Verschieben an verschiedene Orte).
Für größere Teams habe ich tatsächlich ein bisschen Build-Automatisierung in Form von benutzerdefinierten MSBuild-Aufgaben gefunden, und RoboCopy funktioniert am besten. Diese nette Kombination, um Builds zwischen Umgebungen manuell zu promoten und MSBuild & amp; RoboCopy, um Teile dieses Prozesses zu automatisieren, schafft saubere Pausen zwischen den Umgebungen (mit sehr wenigen 'Ups wollte ich nicht, dass es dort Fehler gibt). Es ermöglicht uns auch, QA Review-Builds vor der Promotion zu erstellen.
Update 31.07.2014:
Ich habe benutzerdefinierte TFS-Build-Templates mit Erfolg. Sie sind ein bisschen kompliziert, aber Sie können eine Menge cooler Dinge mit ihnen machen.
Für Open-Source-Projekte (wie NuGet-Bibliotheken), die auf GitHub gehostet werden, glaube ich nicht, dass Sie AppVeyor schlagen können. Ich habe ein paar Projekte wie Mailchimp.NET , die eine komplette Build- und NuGet-Implementierung automatisieren.
Klingt wie die zwei wichtigsten Funktionen zum Bereitstellen Ihrer Codeänderungen ist: 1. Kopieren von Dateien und 2. Ausführen von DB Script-Änderungen. Wenn Sie MsBuild Community-Aufgaben verwenden, gibt es viele praktische Build-Aufgaben, die Ihnen auf Ihrem Weg helfen können. SqlExecute und RoboCopy klingen so, als wären sie alles, was Sie benötigen würden. Dies würde erfordern, dass Sie Ihre Projektdateien modifizieren, um ihr Build-Verhalten zu erweitern, aber sobald dies erledigt ist, können Sie den manuellen Teil des Vorgangs "scripten".
Ich habe Nant in der Vergangenheit mit viel Glück für ähnliche Aufgaben benutzt. Sie können es mit Ihrem automatisierten Build starten. ( Ссылка )
Wenn du etwas umfassenderes willst, kannst du wix ( Ссылка )
ausprobierenJetzt bist du dir wirklich sicher, dass alles, was ein autmatischer Build startet, du möchtest die Live-Site aktualisieren? Oder meinen Sie, dass Sie einen Build starten, Ihr cc-Tool verwenden und dann einen Build generieren, um live zu gehen?
Ich würde es hassen, wenn die Live-Site aktualisiert wird, wenn jemand eine neue Version einer Datei eincheckt.
Ihre Datenbankaktualisierungen werden wahrscheinlich der schwierigste Aspekt sein. Solange jedoch für das Datenbank-Update ein Änderungs-Skript eingecheckt ist, ist es nicht schlecht.
Tags und Links asp.net build-automation cruisecontrol.net web-deployment automated-deploy