2016-09-23 5 views
1

У меня есть 3 этапа (dev/staging/production). Я успешно настроил публикацию для каждого, так что код будет развернут, используя msbuild, в нужное место, с правильными преобразованиями в сети - все в Jenkins.Использование Jenkins для развертывания на производственный сервер

Проблема, с которой я сталкиваюсь, заключается в том, что я не знаю, как развернуть код для создания из того, что было создано на dev (и постановка на производство). В настоящее время я использую SVN в качестве источника управления, поэтому я думаю, что мне нужно каким-то образом сохранить последний номер версии, который разработчик создал, и каким-то образом рассказать Дженкинсу о создании/развертывании на основе этого номера?

Есть ли способ сделать это, или лучшая альтернатива?

Любая помощь будет оценена по достоинству.

Edit: Решил использовать сохранить метод номер ревизии, который анализирует файл, содержащий номер версии к следующему заданию - сделать это, я последовал такой ответ:

How to promote a specific build number from another job in Jenkins?

Это объясняет как скопировать артефакт из одной работы в другую с помощью плагина продвижения. Для самого артефакта, я добавил «Выполнить команду Windows» пакетного шаг сборки после основной сборки с:

эхом DEV_ENVIRONMENT_CORE_REVISION:% SVN_REVISION%> env.properties

Тогда в задании ступенчатого, используя что выше руководства , скопировал этот файл, а затем с помощью плагина EnvInject, чтобы прочитать из этого файла и установить переменную среды, которая затем может использоваться как параметр для URL-адреса репозитория SVN.

ответ

0

Вы должны иметь возможность идентифицировать номер набора изменений, который был встроен в DEV, и вручную передать этот набор изменений в сборку Jenkins, чтобы вытащить тот же набор изменений из SVN. Очевидно, что это делает ваше развертывание более ручным. Возможно, вы можете настроить Jenkins, чтобы опубликовать номер набора изменений в файл, а затем включить более позднюю сборку env для чтения этого файла для номера набора изменений.

Мы использовали эту модель, и она всегда была сложной. В конце концов мы перешли к сборке один раз и развернули много раз модель с помощью WebDeploy. Это сделало процесс более простым. Проверьте это - http://www.dotnetcatch.com/2016/04/16/msbuild-once-msdeploy-many-times/

+0

У вас есть более подробное сообщение в блоге относительно вашего процесса «один раз и развертывание много раз»? Unsure about: 1. Будет ли упаковка и развертывание в разных средах правильно использовать файлы публикации? 2. Упаковка, по-видимому, применяется только на уровне проекта, поэтому становится больно, когда моему решению требуется 4 проекта для публикации. –

+0

Для правильного применения пакета (ов) вам потребуется настроить инструмент для оркестровки выпуска. Мы используем Thoughtworks GO! в настоящее время, но у VSTS есть некоторые действительно приятные функции. У нас есть 50 трубопроводов в GO! каждый из которых имеет несколько развертываемых компонентов (сайты ASP.NET, dbs SQL Server, службы Window и т. д.), и он отлично работает. Следующая публикация представляет собой обзор на высоком уровне о том, как мы создаем пакеты развертывания. В моем блоге также есть еще несколько конкретных примеров. - http://www.dotnetcatch.com/2015/04/22/extending-msdeploy-beyond-the-web/ – chief7

Смежные вопросы