Как мне разархивировать удаленно во время автоматического развертывания в нашей среде QA? - PullRequest
1 голос
/ 03 августа 2010

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

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 04 августа 2010

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

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

2 голосов
/ 03 августа 2010

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

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

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

  • установить сервер cwRsync на удаленной машине и
  • разрешить трафик через любые брандмауэры.
...