Ich arbeite seit einigen Monaten mit Orchard CMS (und liebe es) und die Zeit für den Start meiner Website rückt immer näher. Bis jetzt habe ich mich nur aus meinem BitBucket-Repo heraus entwickelt, habe bei Bedarf gegabelt und nichts zu ausgefallen gemacht. Sobald ich veröffentlicht habe, muss ich jedoch genau wissen, welche Versionen meiner Module und Designs in der Produktion verwendet werden. Ich sehe versionierte Pakete aus meinem Build-Server ist der beste Weg, dies zu erreichen.
Momentan besteht mein Repo aus der Quelle für die gesamte Orchard-Instanz (abzüglich des App_Data
-Ordners), mit einer Lösungsdatei, die die Projekte enthält, die meine Module und Themen sind. Meine Module übernehmen Abhängigkeiten von anderen Modulen aus dem Ordner App_Data / Dependencies.
Meine Frage ist, ist dies der beste Ansatz, um eine kontinuierliche Integration zu erreichen?
Ich habe meine Lösung unter TeamCity erstellt, aber ich habe den App_Data-Ordner nicht in meinen Repo aufgenommen, also muss ich zumindest die Setup-Seite laden, damit das Dependencies-Verzeichnis gefüllt wird (was auf meinem Build-Server nicht passiert) aus irgendeinem Grund? Scheint nur dynamische Kompilation für alles?)
Irgendwelche Gedanken oder Hilfe würden sehr geschätzt werden.
UPDATE:
Ich habe entschieden, dass ich meiner Lösung einen lib-Ordner hinzufügen und alle abhängigen Assemblies dort speichern werde. Ich werde dann meinen Repo nur aus den Projekten bestehen, die für meine Module / Themen erforderlich sind. Der CI-Server wird dann keine Probleme haben, die Lösung zu erstellen, und ich kann den Repo einfach in eine Orchard-Instanz für die einfache Entwicklung klonen (das bedeutet, dass meine Lösung ein Modules and Themes-Verzeichnis enthalten muss).
Ich habe den folgenden Ansatz verwendet.
Erstellen Sie meine Lösung und alle damit verbundenen Projekte in einem separaten Verzeichnis, so dass die Verzeichnisstruktur im Moment wie folgt aussieht:
Dann platzieren Sie Ihre Module Projekte unter orchard/modules
Ordner mit allen Quellen und .proj
Dateien
Fügen Sie Referenzen aus Ihren Modulprojekten zu orchard/bin
für beliebige hinzu
Obstgarten-spezifische Sachen
Fügen Sie Modul-Binärdateien manuell zum App_Data/Dependencies
-Ordner hinzu, um auf sie verweisen zu können
Eine der Verbesserungen dieses Ansatzes besteht darin, die dynamische Kompilierung zu deaktivieren und nur Modulbinärdateien zu speichern. Dazu müssen jedoch der Ausgabebehälterpfad und zusätzliche Aktionen im Buildskript konfiguriert werden.
Vorteile
Tags und Links asp.net-mvc teamcity continuous-integration orchardcms