ФорумПрограммированиеPHP для идиотов → deploy

deploy

  • Абырвалг

    Сообщения: 6477 Репутация: N Группа: Джедаи

    Spritz 26 мая 2010 г. 17:51

    короче такая тема:
    есть сервер, к нему по ftp только есть доступ.
    есть локальный проект, с hg-репзиторием
    хочу деплоймить хотя бы только файлы, черт с ними, миграциями.


    Что думаю делать:
    cli-интерфейс, который будет работать с hg через shell_exec, смотреть последнюю экспортированную ревизию (var/deploy/…), сравнивать текущую ревизию с той, которая там и выливать файло.

    что вы думаете по этому поводу? требовать у хостера ssh и использовать хуки? Ну это как бы не Ъ. {+++64+++} вот это, кстати, норм идея для опенсорсного проекта имхо. Сделать потом поддержку svn, git, …
  • phpdude

    Сообщения: 26617 Репутация: N Группа: в ухо

    Spritz 26 мая 2010 г. 23:26, спустя 5 часов 34 минуты 59 секунд

    Абырвалг, в фтп манагере юзай "заменить только новые"
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6477 Репутация: N Группа: Джедаи

    Spritz 27 мая 2010 г. 2:05, спустя 2 часа 38 минут 3 секунды

    так и делаю в FileZilla. Но это ж нужно каждый раз его открывать, подключаться к серверу (пусть он добавлен в избранные или один из 10 последних - есть в хистори), выбирать файло.
  • phpdude

    Сообщения: 26617 Репутация: N Группа: в ухо

    Spritz 27 мая 2010 г. 2:14, спустя 9 минут 44 секунды

    Абырвалг, юзай свн если фтп не нравится
    Сапожник без сапог
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 27 мая 2010 г. 2:49, спустя 34 минуты 31 секунду


    вот это, кстати, норм идея для опенсорсного проекта имхо. Сделать потом поддержку svn, git, …

    вполне, попробуй начать)
    adw/0
  • Абырвалг

    Сообщения: 6477 Репутация: N Группа: Джедаи

    Spritz 28 мая 2010 г. 0:40, спустя 21 час 51 минуту 14 секунд

    Работаем-с. Конфиг планируется типа такого

    array(
    'repository' => 'mercurial', // потом будет svn/git
    'locksDir' => 'var/deploy', // папка, в которой будет храниться информация о текущих ревизиях, расположенных на удаленных серверах
    'tasks' => array(
    'dev' => array( // название задания. Понятно, что таких заданий можно сделать хоть 10 (если развертывать нужно на несколько машин)
    'connection' => 'ftp', // потом будет sftp/scp
    'options' => array(
    'host' => 'site:com',
    #'port' => '21',
    #'timeout' => 30,
    'user' => 'me',
    'pass' => '*****',
    'dir' => 'subdomains/dev/site', // папка, в которую заливать (относительно той, в которую входим при подключении)
    )
    )
    )
    );

    {+++210+++} а, да, работает это все через:
    class BL_Filesystem_Adapter_Ftp extends BL_Filesystem_AdapterAbstract

    а в абстрактном
    	abstract public function read($path);

    abstract public function write($path, $data, $perms = 0666, $owerwrite = BL_Filesystem::OWERWRITE_ALL);

    abstract public function remove($path);
    // …
  • Абырвалг

    Сообщения: 6477 Репутация: N Группа: Джедаи

    Spritz 29 мая 2010 г. 7:58, спустя 1 день 7 часов 18 минут

    возникли спорные моменты (при написании BL_Filesystem):

    ситуация 1:
    удаляю несуществующую папку/файл. Что делать?
    a) вернуть false
    b) бросить исключение
    c) сделать морду кирпичем и сказать, что все хорошо - папку мы удалили

    заливаю файл в папку, которой нет
    a) бросить исключение
    b) попытаться создать эту папку, если не получится - бросить исключение
  • phpdude

    Сообщения: 26617 Репутация: N Группа: в ухо

    Spritz 29 мая 2010 г. 7:56, спустя 23 часа 57 минут 44 секунды

    Абырвалг, очевидн оисключение, твой велосипед возможно ктото будет не только в велосипеде юзать
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6477 Репутация: N Группа: Джедаи

    Spritz 29 мая 2010 г. 8:01, спустя 4 минуты 30 секунд

    в обоих случаях? да я ж заебусь их отлавливать. Как по мне, я б выбрал
    1 c
    и
    2 b {+++35+++} ну или в опции вынес бы, типа strict или мягко
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 29 мая 2010 г. 8:49, спустя 48 минут 23 секунды

    сделай как проще, потом если что улучшишь {+++13+++} а проще - твой вариант
    adw/0
  • Абырвалг

    Сообщения: 6477 Репутация: N Группа: Джедаи

    Spritz 29 мая 2010 г. 10:59, спустя 2 часа 10 минут 24 секунды

    ррр, говнище http://pastebin.mozilla-russia.org/106061

    /me пошел бухать
  • Абырвалг

    Сообщения: 6477 Репутация: N Группа: Джедаи

    Spritz 29 мая 2010 г. 11:07, спустя 7 минут 51 секунду

    пока не ушел, скину скрин
  • Абырвалг

    Сообщения: 6477 Репутация: N Группа: Джедаи

    Spritz 30 мая 2010 г. 4:26, спустя 17 часов 18 минут 11 секунд

    ебашит. Второй скрин - проверка удаления и что будет, если я подставил некорректные данные при подключении
  • master

    Сообщения: 3236 Репутация: N Группа: Джедаи

    Spritz 15 июня 2010 г. 4:16, спустя 15 дней 23 часа 50 минут

    Требовать у хостера ssh и использовать rsync.
    не всё полезно, что в swap полезло
  • phpdude

    Сообщения: 26617 Репутация: N Группа: в ухо

    Spritz 15 июня 2010 г. 10:56, спустя 6 часов 39 минут 46 секунд

    Абырвалг, чо за папочка самсунг на заднем плане? :)

    master, как один из правильных вариантов, cvs, svn до кучи гит и меркуриал
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!