2014-01-08 3 views
2

У меня есть проект PHP, который использует Capistrano 3 для развертывания в стадии постановки/тестирования/вживую, и все работает нормально.Изменение файлов при развертывании с помощью Capistrano

Теперь мы столкнулись с ошибкой в ​​одной из наших зависимостей, которые включены в PHPComposer, это очень простое исправление (изменение одной строки), которое мы делаем вручную в каталоге поставщика в наших коробках разработки, до тех пор, пока ошибка не будет исправлено с помощью нашего запроса на растяжение. Но каждый раз, когда мы развертываем все зависимости, снова устанавливаются на целевом сервере развертывания, включая искаженную зависимость. После того, как мы вручную перейдем на сервер и изменим одну строку в конкретном файле, развертывание будет успешным.

Как бы я мог автоматизировать это с помощью capistrano? Есть ли доказанные способы сделать это?

ответ

1

Я подозреваю, что «официальное» решение заключается в том, чтобы разблокировать репо с вашим исправлением на месте, а затем переписать новое репо, установив, чтобы ваш composer.json использовал это в предпочтении оригиналу, пока вы ждете исправления чтобы объединиться вверх по течению.

Есть некоторые подробности на сайте композитора - require-inline-alias

Конфигурация composer.json, чтобы быть в состоянии сделать инлайн-алиасинг:

"repositories": [ 
    { 
     "type": "vcs", 
     "url": "https://github.com/you/monolog" 
    } 
], 
"require": { 
    "symfony/monolog-bundle": "2.0", 
    "monolog/monolog": "dev-bugfix as 1.0.x-dev" 
} 

Это будет получать DEV-багфикс версию monolog/monolog от вашего GitHub и его псевдоним 1.0.x-dev.

Смежные вопросы