Rate this post

Данная статья предназначена для разработчиков, которые работают с SVN и удаленных хостингом с доступом по ftp и ssh, и ограничением на установку чего либо.nnhosting-svnnnПроцесс деплоя очень прост, обновление файлов на хостинг, которое реализовано скриптом. Программист формирует код, после выполняется скрипт который заменяет текущие файлы, можно запускать либо автоматически либо вручную.nnТехнические требования:Локальный серверn

  • SVN хранилище ,  добавлен в PATH путь к svn.exe
  • используется python 2.5,  добавлен в PATH путь  к python.exe
  • есть SSH

Удаленный хостингn

  • есть ssh, ftp
  • нельзя устанавливать ПО

C:\Program Files\CruiseControl\projects\project1 содержит код проекта, синхронизуруется с продуктивным сервером. Т.е. код на продуктиве совпадает с кодом в папке.nnСкрипт синхронизации у меня расположен C:\svn\apply_svn_changes\publish_web_site.pynnПользователь имеет доступ к ssh, ftpnnnСайт на удаленном хостинге находится по пути web/project в папке ftpnnЗапуск скрипта выполняется следующей командойn

> python C:\svn\apply_svn_changes\publish_web_site.py -c "C:\Program Files\CruiseControl\projects\project1\source" --host [email protected] -p ftp_password -d sites/ms

Скрипт просматривает папку «C:\Program Files\CruiseControl\projects\project1\source», проверяет версию кода, и сравнивает с версией в хранилище. Таким образом определяет что нужно удалить, а что — скопировать или создать. Для этого используется команда svn diff .Далее происходит формирование плана выполнения и сохранение его во временной директории.nЗатем скрипт просматривает план, соединяется по ftp с хостингом и выполняет план. По окончанию отключается, все изменения фиксирует в лог файлn

nnСкрипт также можно загрузить с ключем —helpn

python "C:\svn\apply_svn_changes\publish_web_site.py" --help