В моем проекте есть многошаговый конвейер, который включает в себя некоторые шаги, такие как Crawling, NLP и т. Д., Но я просто буду называть их Step1, Step2 и т. Д. Кроме того, я хочу иметь возможность развертывания в различных средах (dev , продукт и т. д.).
Я полагаю, что буду использовать многоступенчатый компонент для Capistrano для развертывания в различных средах (например, развертывание cap dev против развертывания cap prod).
Также, кажется, имеет смысл использовать роли для каждого шага конвейера. Однако каждый шаг выполняется довольно независимо от остальной части конвейера, поэтому каждый шаг может быть перезапущен / развернут независимо от других шагов. Не похоже, что Capistrano явно поддерживает выполнение задач только для определенной роли. Какой хороший способ сделать это?
Является ли лучший способ сделать это, определяя задачи конкретно для каждой роли? Что, если между ролями есть общие задачи? Может быть, там есть вспомогательные методы?