Как объединить и зафиксировать ветку в TeamCity
Я хочу выяснить, как интегрировать сборки TeamCity с развертываниями Springloops.
Допустим, у меня есть Git-репо api
имеет две ветви dev
а также dev.build
api
|-- dev
|-- dev.build
Я настроил TeamCity с триггером VCS на dev
основываться на совершении. Который затем создает артефакты, которые я хочу использовать для развертывания. (В данном случае это веб-сайт ASP.NET с различными библиотеками DLL, которые я хочу использовать для развертывания).
У меня также есть Springloops, которые я сейчас использую для развертываний. В идеале я хотел бы развернуть из dev.build
, Есть ли способ передать артефакты сборки из TeamCity в dev.build
ветка, а потом развернуть из этой ветки?
Основной рабочий процесс будет
- Передать код в
dev
- TeamCity объединяется
dev
вdev.build
- TeamCity строится из
dev.build
- TeamCity передает артефакты (DLL) в
dev.build
- Springloops автоматически развертывается из
dev.build
Я прочитал аргументы против хранения двоичных файлов / артефактов сборки в git, но сейчас я делаю свои развертывания из Springloops, и в идеале я мог бы сохранить эту настройку. Я знаю, ты можешь позвонить git
в качестве шага сборки командной строки, но у меня проблемы с соединением всех частей. Особенно как слить с dev
в dev.build
в качестве шага сборки TeamCity, а затем использовать dev.build
строить из.
Это вообще возможно? Я думаю об этом совершенно неправильно? У меня есть другие варианты?
Редактировать /Update
Я обнаружил, что будет разумнее переключиться на использование WebDeploy для развертывания артефактов TeamCity (пакет WebDeploy) вместо фиксации артефактов сборки из репозитория git через Springloops. Надеюсь, что я перестану использовать Springloops для развертываний и буду развертывать непосредственно на своих сайтах IIS через WebDeploy через задачу сборки TeamCity. Так строятся артефакты (\bin
папка) останется вне мерзавца, и web.config
преобразования также могут быть использованы вместо ручной web.config
редактирует на производственных сайтах IIS.
2 ответа
Другим вариантом, который я бы порекомендовал, является создание артефакта TeamCity, который предназначен для хранения результатов вашей работы в интегрированном хранилище артефактов облегченной сборки.
Таким образом, Springloops может искать артефакты для развертывания непосредственно по URL-адресу TeamCity (или агенту TeamCity).
Это было бы лучше, чем пытаться поместить эти артефакты в репозиторий с исходным кодом, такой как Git, который не предназначен для этого.
Что касается самой сборки TeamCity, она может состоять из двух заданий (одно зависит от другого), причем первое из них использует функцию автоматического объединения, чтобы объединить dev
в dev.build
,
Да, это абсолютно выполнимо в TeamCity. На самом деле Jetbrains освещает многое из этого в блоге здесь.