Я хотел бы знать, как "отложенная фиксация" функциональность работает над серверами CI, которые не интегрируются с репозиториями управления исходным кодом. Концептуально, работы процесса как следуют:
Большинство серверов CI работает путем опроса репозиториев управления исходным кодом относительно изменений и затем раскрытия кода. Таким образом в отложенном сценарии фиксации, разработчики проверяют свой код в сервере CI, а не фактическом управлении исходным кодом репозитории, и затем сервер CI передает код репозиторию? Или альтернативно серверы CI просто откатывают изменения, если сборка перестала работать?
Я думаю о двух непрерывных системах интеграции в частности. Сервер Основы команды собирается предложить эту функциональность в следующей версии, но это имеет смысл, потому что Сборка Команды (система CI) в TFS интегрируется с репозиторием управления исходным кодом. Однако в случае Города Команды, TC может соединиться с любой системой управления исходным кодом и не обязательно интегрируется с или даже на том же сервере как репозиторий управления исходным кодом. Как это работает?
Править: Открытие щедрости по этому вопросу в надеждах, что я могу получить некоторые более возможные ответы.
Обычно вы должны использовать инструмент командной строки или плагин IDE, который позволяет вам отправлять свой код на сервер CI. Инструмент объединяет ваши изменения вместе со всеми соответствующими метаданными проектами / репозиториями / пользователями, запускает сборку, а затем совершает его, если все пойдет хорошо.
В случае Teamcity, похоже на сервер фактически отправляет сообщение одобрения обратно на ваш компьютер ( от того, что я могу сказать с диаграммы ), то она предана оттуда - предположительно, так вы Не нужно иметь учетные данные каждого пользователя, которые могут быть сложными, если вы используете SSH частные клавиши и т. Д. - На вашем TC-сервере.
Но СИ серверы CI могут интегрироваться с практически любой любой системой SCM, независимо от того, где находится сервер - вам просто нужно дать ему правильные учетные данные, чтобы получить (вообще только для чтения).
Это делает что-то подобное:
(Источник: kawalerowicz.net )
Так что это клиент машина, которая делает коммит. Не сервер. СКМ не имеет значения в этом случае.