Блог >> deployment tool Magallanes

Вообще тут будет некоторое дублирование официальной документации только на русском языке

Установка

composer require andres-montanez/magallanes:^3.0

composer update

Постоянно выскакивала ошибка [RuntimeException]

Даже есть такая ошибка на гитхабе, но её решение не относится к моей проблеме. Пришлось копаться в коде, конкретно в моем случае была следующая ошибка: не правильно задан параметр host_path - я указал папку, в которую попадает пользователь при заходе по shh и ожидал, что он скрипт будет локально ходить по папкам, и создавать/редактировать каталоги, но

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

	mkdir -p /myhost/mysite/test_public_html/public_html/releases/20170421091103

попытавшись выполнить его вручную, получил ошибку о нехватке прав. выполнив команду pwd получил полный путь к моему каталогу с сайтами а именно: /home/j/myhost/...

Как видно на скриншоте, помимо стандартного вывода, там появилась еще и мая отладочная информация, а именно: название класса, и выполняемая команда, для класса PrepareTask, расположенного в vendor/andres-montanez/magallanes/src/Task/BuiltIn/Deploy/Release/PrepareTask.php

Вообще саму команду и ответ с ошибкой можно вывести в файле

/var/www/justivru/vendor/andres-montanez/magallanes/src/Runtime/Runtime.php

в метод runLocalCommand добавить вывод в условие if (!$process->isSuccessful()) {

следующую строки:

	print($cmd);
	print($process->getErrorOutput());

Вообще это конечно странно, что даже при любом уровне выполнения, передав дополнительный параметр -vvv, указывающий отладочный режим, ничего не выводится в терминал.

Вот мой файл найстроек:

magephp:

	log_dir: /var/www/localsite/logs/deploy
	    environments:
	        production:
	            ssh:
		      port: 22
	            user: username
	            branch: master
	            from: ./
	            host_path: home/j/myhost/mysite/test_public_html/public_html
	            releases: 4
	            exclude:
	      - ./test/*
	      - ./_migrations/*
	      - ./data/*
	      - ./.mage.yml
	      - ./logs/*
	      - ./*.sql
	    hosts:
	      - 00.000.00.000
	    pre-deploy:
	    on-release:
	    post-release:
	    post-deploy:

Как видно, второй строкой указана папка для логирования, дак вот, туда соответственно будут валиться все логи. Папка должна быть создана, на момент запуска в противном случае логи создаваться не будут. Сам скрипт папку не создаст.

P.S. Так же не скриншоте видно, что для каждого чиха magallanes требует ввести пароль - это конечно капец как неудобно, в репозитории есть issue на данную тему и помечено что будет выполнена в v3, она уже давно вышла, а воз и ныне там...



Категории

GIT сервер *nix html Linux php xampp SVN MySQL Настройка разработка Отладка Мысли mobile FirefoxOS тесты ЧПУ TinyMCE Киров блоггинг Вирусы Ubuntu Операционные системы JavaScript Android Среда разработки книги tips and tricks C# MSSQL С++ Qt PostgreSQL