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

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

Я могу придумать несколько вариантов, но ни один из них не кажется правильным:

  • Используйте PsExec для выполнения удаленного вызова командной строки на сервере QA, чтобы распаковать выпуск.
  • Разместите на сервере контроля качества веб-службу, которая распаковывает выпуск и копирует его в нужное место. Эта служба может быть вызвана нашим выпуском, когда загрузка файлов завершена.
  • Разместите службу Windows на сервере контроля качества, который отслеживает расположение файла и выполняет разархивирование.

Но все это не красиво. Интересно, как другие решили эту проблему?

PS: мы используем CruiseControl.NET для выполнения сценария NAnt, который выполняет сборку, архивирование и FTP.


person willem    schedule 03.08.2010    source источник
comment
удаленный сервер unix / linux? Вы можете подключиться к этому серверу по ssh? почему бы не использовать rsync?   -  person berkes    schedule 03.08.2010


Ответы (2)


Вместо сжатия и разуплотнения вы можете использовать такой инструмент, как rsync; которые могут прозрачно сжимать данные во время передачи файлов. Параметр -z указывает rsync использовать сжатие.

Но я предполагаю, что вы находитесь в среде Windows, и в этом случае вы можете использовать cwRsync (который «rsync для Windows»).

В зависимости от вашего доступа к блоку контроля качества это может быть нежизнеспособным решением. Вам необходимо:

  • установите сервер cwRsync на удаленный компьютер и
  • разрешить трафик через любые межсетевые экраны.
person Dawie Strauss    schedule 03.08.2010

На последнем месте, где я работал, у нас был парень, который написал службу Windows в CI-боксе, чтобы выполнить разархивирование. TFS Team Server завершил сборку и уведомил службу о необходимости заархивировать завершенную сборку и скопировать ее в поле CI. Ящик CI обнаружил новый файл и разархивировал его. Возможно, это было немного тяжеловато, но это работало хорошо - и он знал, что нужно регистрировать все действия в журнале событий, поэтому было легко диагностировать, был ли сервер сброшен, а служба не запущена.

Обновление: одна вещь, которую мы хотели бы улучшить в этом процессе, заключалась в том, чтобы служба в поле CI проверяла zip-файлы и несжатые файлы, которые были старше x месяцев, для целей очистки. Нам постоянно не хватало места на диске (это была виртуальная машина, на которую мы редко обращали внимание), и когда это происходило, приходилось вручную очищать старые сборки.

person Robert Hui    schedule 03.08.2010