Mi proyecto tiene una canalización de varios pasos que incluye algunos pasos como Rastreo, PNL, etc., pero me referiré a ellos simplemente como Paso 1, Paso 2, etc. Además, quiero poder para implementar en diferentes entornos (dev, prod, etc.).Ejecución de tareas de Capistrano solo para determinados roles
Me imagino que usaré el componente de varias etapas para Capistrano para implementar en los diferentes entornos (por ejemplo, despliegues de desarrollo de cap vs despliegue de prod prod).
También parece tener un sentido intuitivo utilizar roles para cada paso de canalización. Sin embargo, cada paso se ejecuta con bastante independencia del resto de la canalización, por lo que cada paso puede reiniciarse/implementarse independientemente de los otros pasos. No parece que Capistrano admita explícitamente ejecutar tareas solo para un rol específico. ¿Cuál es una buena manera de hacer esto?
¿Es la mejor manera de hacer estas tareas de definición específicamente para cada función? ¿Qué pasa si hay algunas tareas comunes entre los roles? Tal vez los métodos de ayuda es la respuesta allí?
No es exactamente lo que estoy buscando. Por ejemplo, si tuviera una tarea como: ' tarea: hacer clear_logs plazo "rm -f /tmp/blah.log" final ' como parte de un despliegue, me gustaría ejecutarlo en toda mi máquinas si estuviera implementando todos los Pasos en mi canalización. Pero si solo estoy implementando el Paso 2 de la canalización, solo querría borrar los registros en todas las máquinas que tienen el rol de Paso 2. El problema con las funciones que estoy encontrando es que son buenas para especificar en qué máquinas ejecutar las tareas, pero parece que no se puede especificar si realmente las ejecutan o no para una implementación en particular. – JZC