Разработка модуля Orchard CMS и постоянная интеграция с TeamCity - PullRequest
9 голосов
/ 23 ноября 2011

Я занимаюсь разработкой Orchard CMS уже несколько месяцев (и мне это нравится), и время запуска моего веб-сайта быстро приближается.До сих пор я только разрабатывал соло из своего репозитория BitBucket, разветвляясь там, где это было необходимо, не делая ничего слишком сложного.После того, как я выпустил, мне действительно нужно иметь представление о том, какие версии моих модулей и тем используются в производстве.Я полагаю, что версионные пакеты с моего сервера сборки - лучший способ добиться этого.

В настоящее время мое репо состоит из источника для всего экземпляра Orchard (за исключением папки App_Data) с файлом решения, включающим проекты, являющиеся моими модулями и темами.Мои модули используют зависимости других модулей из папки App_Data / Dependencies.

Мой вопрос: является ли это лучшим подходом для достижения непрерывной интеграции?

У меня есть решение для сборки под TeamCity, но я не включаю папку App_Data в свое хранилище, поэтому мне нужно как минимум загрузить страницу установки, чтобы каталог Dependencies был заполнен (чего не происходит вмой сервер сборки по какой-то причине? Кажется, только динамическая компиляция запускает все?)

Любые мысли или помощь будут с благодарностью.

ОБНОВЛЕНИЕ:

Я решил добавить папку lib в свое решение и хранить там все зависимые сборки.Тогда мой репо будет состоять только из проектов, необходимых для моих модулей / тем.После этого у CI-сервера не возникнет проблем при создании решения, и я могу просто клонировать репо в экземпляр Orchard для упрощения разработки (это означает, что мое решение должно будет содержать каталог Modules and Themes).

1 Ответ

1 голос
/ 16 февраля 2012

Я использовал следующий подход .

  • добавление двоичных файлов Orchard в хранилище без каких-либо исходных кодов, только для того, чтобы они распространялись на сайте проекта orchard
  • создайте мое решение и все связанные проекты в отдельном каталоге, поэтому на данный момент структура dir выглядит следующим образом:

    enter image description here

  • затем поместите ваши проекты модулей в папку orchard/modules со всеми источниками и .proj файлами

  • добавьте ссылки из ваших проектов модулей в orchard/bin для любого материала, специфичного для сада

  • добавить двоичные файлы модуля вручную в папку App_Data/Dependencies, чтобы иметь возможность ссылаться на них

Одним из улучшений этого подхода является отключениединамическая компиляция и сохранение только двоичных файлов модулей, но для этого потребуется настроить путь выходного бина и выполнить дополнительные действия в сценарии сборки.

Преимущества

  • Вам не нужнонет источника фруктового садаs в вашем хранилище, кроме модулей (но это можно решить, отключив динамическую компиляцию).
  • Вы можете легко обновить двоичные файлы и модули для фруктовых садов практически независимо
  • Сборка занимает меньше времени
...