Как лучше всего справиться с зависимостями внешних приложений в непрерывной интеграции?

StackOverflow https://stackoverflow.com/questions/119724

Вопрос

При использовании нашего сервера непрерывной интеграции TeamCity мы обнаружили некоторые проблемы, которые не знаем, как лучше всего решить.А именно, как ссылаться на внешние приложения, которые требуются нашему приложению на CI-сервере.

Первоначально это было обнаружено при зависимости от Crystal Reports, поэтому мы пошли и установили Crystal Reports на сервер, устранив непосредственную проблему.Однако по мере того, как мы перемещаем больше приложений на CI-сервер, мы обнаруживаем больше зависимостей.

Какова здесь лучшая стратегия?Продолжить установку необходимых приложений на Сервер?

Спасибо

Это было полезно?

Решение

По возможности сделайте внешние зависимости частью вашей системы сборки.Например, проверьте установщик в своей системе контроля версий и сделайте шаг, который проверит его и запустит в автоматическом режиме (многие установщики поддерживают режим без каких-либо действий пользователя, иногда с использованием командной строки /s).

Таким образом, если вам нужно настроить другую машину сборки для филиала или просто для нового оборудования, все можно повторить.

Другие советы

Если для завершения сборки вашим сборкам требуется фактическое приложение, вам, вероятно, следует продолжить установку приложения на свой сервер сборки.

Если вам просто нужны ссылки на библиотеки DLL или сборки из приложения, то в моей компании мы создали устанавливаемые «SDK» ссылок, необходимых для конкретного приложения, и установили их на наши машины для разработки и сборки в хорошо известных каталоги библиотек, на которые ссылаются наши решения.

На машине сборки наши шаги перед сборкой устанавливают правильную версию зависимостей, а затем очищают их, когда мы закончим.

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

Если вы используете Maven для сборки, вы можете определить свои зависимости в файле pom.xml.При необходимости они будут автоматически загружены.

Я не уверен, правильно ли я поступил...

Я предполагаю, что ваше приложение зависит от этого внешнего приложения при создании?В этом случае он должен быть на машине, выполняющей CI...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top