За последние 24 часа нас посетили 18124 программиста и 1649 роботов. Сейчас ищут 1600 программистов ...

BL_Deploy: (полу)автоматическое развертывание проектов + VCS

Тема в разделе "Решения, алгоритмы", создана пользователем Koc, 30 май 2010.

  1. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    Что такое BL_Deploy?
    Класс, написанный на похапэ, который запускается из консоли.

    Что делает?
    Предоставляет возможность "выливать" проект на сервер.

    Есть же FileZilla/winscp/другие клиенты. Зачем мне BL_Deploy?
    Руками выливать файло неудобно. Особенно если нужно заливать не все файлы, а только измененные (обновить версию). Или если нужно залить сразу на 10 серверов: подключаться руками к каждому серверу - уже гимор.

    Чем не устраивают post-commit hooks в VCS?
    Далеко не всегда нужно обновлять файлы на сервере после каждого коммита.

    А как обновлять базу?
    Не знаю. Используйте ORM'ку, которая поддерживает миграции. В будущем я добавлю систему event'ов и после развертывания можно будет запустить какой-то действие (залить дамп, например).

    Что нужно для запуска?
    PHP >= 5.2.4, Mercurial, для пользователей windows - ansicon (есть в комплекте)

    Какие системы контроля версий поддерживаются?
    Пока только Mercurial (hg). В дальнейшем будут добавлены SVN, Git.

    Какие сервера поддерживатся?
    Пока только FTP. В дальнейшем будут sftp, scp, ftps, ...

    Хочу лицезреть пример работы
    http://rghost.ru/1750976.view

    Где скачать?
    http://rghost.ru/1750830

    Я хочу помочь развитию этой утилиты (материально/кодом/советами)
    Напишите мне в ЛС, обсудим.




    В принципе существующего функционала мне пока с головой хватит. Дальнейшие улучшения будут, но о сроках сказать не могу.

    В середине июля это появится в составе BL, пока выкладываю отдельным приложением.


    Как пользоваться: создаете репозиторий, настраиваете конфиг. Потом запускаете `cli/run` и работаете. Вендузятники вынуждены пользоваться ansicon'ом. Копируете содержимое папки `!windows` в %sysdisk%:\Windows, запускаете cmd, переходите в папку с `cli/run.bat`, запускаете `ansicon -p` и потом `run`.
     
  2. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
  3. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    хех, юзаю scp -r, будем изучать код )
     
  4. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    Ну что, кто-нибудь использовал?
    Рекомендуется использовать пассивный режим, в новой версии вынесу это в опцию (пока добавьте после коннекта ftp_pasv).
     
  5. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Koc
    я в учебных целях код смотрю, фтп нету, сервер под столом стоит)
     
  6. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    я вот блин так и не решил: переписывать адаптер FTP на потоках или оставить на ftp_* функциях?
     
  7. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    ммм, я вот этого места не понял, потоки они для передачи информации между процессами, или не?так зачем тогда тебе делать на потоках если есть готовая функция для работы с фтп? или я ошибаюсь?
     
  8. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
  9. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк