Orchard CMS Modulentwicklung und kontinuierliche Integration mit TeamCity

9

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).

    
Brendan 23.11.2011, 11:26
quelle

1 Antwort

1

Ich habe den folgenden Ansatz verwendet.

  • fügen Orchard-Binärdateien ohne Quellencodes in das Repository ein, nur weil sie auf der Obstgarten-Projektseite verteilt werden
  • 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

  • Sie haben keine Plantagenquellen in Ihrem Repository außer dem Module (aber das ist durch Ausschalten der dynamischen Kompilierung lösbar).
  • Sie können Obstgarten-Binärdateien und Module fast unabhängig voneinander aktualisieren
  • Der Build benötigt weniger Zeit
Restuta 16.02.2012, 03:12
quelle