Implementar una twig de git específica a través de capistrano en un server de transferencia

Tengo mi twig master que se usa para implementar en un server de transición. Y tengo mi twig stable que se usa para implementar en el server de producción. El script capistrano que uso está configurado de esta manera.

Flujo de trabajo actual: cada vez que hay un problema con la producción, me ramifico de la twig stable , arreglo las cosas, las confío, las fusiono con stable y luego deployment a producción.

Esto no me da ninguna posibilidad de probar esa corrección de errores (sucedió en esa twig de reparación urgente), en mi server de transición. Idealmente, lo que quiero sería:

Flujo de trabajo deseado: cada vez que hay un problema con la producción, me ramifico de la twig stable , arreglo las cosas, lo confío, lo fusiono con master , implemento y pruebo ese arreglo en el server intermedio, valido si funciona y luego fusiono esa twig de arreglo urgente a stable y desplegarlo la producción.

¿Cómo hago esto bien con Capistrano? Por favor ayuda.

Descargo de responsabilidad: Perdóneme si he entendido mal su pregunta, pero creo que ya ha respondido su propia pregunta.

Su flujo de trabajo de Git es solo eso, su 'flujo de trabajo git'. Realmente no tiene nada que ver con Capistrano. Capistrano searchá lo que usted quiera, depende de usted cómo fusionar y bifurcar su repository para llevarlo al punto de implementación.

Por lo que dijiste, asumo que ya tienes la configuration de etapas de límite para implementar la twig correcta, pero si no lo haces, hay un ejemplo a continuación. Esto searchá la twig diferente para cada tipo de deployment.

deploy.rb

  set :stages, %w(staging production) set :default_stage, "staging" 

deploy / staging.rb #cap deploy

  set :branch, 'master' 

deploy / production.rb #cap production deploy

  set :branch, 'stable' 

Aquí hay un flujo que le permitirá probar en etapas y aún aprovechar su configuration de implementación de capistrano existente. Supongo que su sucursal de etapas está por delante del maestro y que Capistrano está configurado con la extensión de etapas múltiples.

  1. Desde el maestro, crea una twig de arreglo urgente, utilizo una convención de nomenclatura para arreglo urgente, por ejemplo, hotfix-20121203

     git checkout -b hotfix-20121203 
  2. fusiona tu twig de arreglos rápidos en etapas, implementa y testing etapas

     git checkout staging git merge hotfix-20121203 cap staging deploy 
  3. fusiona tu twig de arreglo dynamic en maestro, implementa y testing el maestro

     git checkout master git merge hotfix-20121203 cap production deploy