¿Cuál es una buena estrategia de implementación para usar con Git + Heroku (Ruby on Rails)?¿Implementación de Good Git usando la estrategia de sucursales con Heroku?
Actualmente la forma en que trabajo con mi repositorio Git de origen: todas las características (o "historias") se comprueban primero como ramas, luego se fusionan con el maestro y se envían al origen.
Cualquier cosa que se envíe al origen/maestro desencadena un script que extrae el nuevo código de raíles al área de ensayo (servidor web simple de raíles).
Cuando llegue el momento de impulsar una nueva versión de producción a Heroku, ¿debería crear una nueva rama (llamada algo así como production_version_121) y llevarla de alguna manera a Heroku?
Idealmente, me gustaría elegir y elegir qué características de las versiones de desarrollo anteriores debería incluir en la rama de producción ... pruébelo, y presione a Heroku.
Por ejemplo, es posible que no desee que todo el último código pase a producción. Es posible que desee la función "a" en la que trabajé e incluir "c" fusionada en producción de alguna manera, sin incluir la función experimental "b" que necesita más depuración.
N.B. Voy a tratar de evitar Capistrano al principio y obtener algo que funcione manualmente por el momento.
¿Pensamientos? ¿Mejores prácticas?
Gracias David! Tenía curiosidad si alguien lo estaba haciendo de esa manera. Correcto, estoy usando mi control remoto "maestro" como producción ... así que para implementar simplemente sigo haciendo: git push heroku (cuando llegue el momento) El problema es que todavía no tengo las características que quiero para elegir y elegir incluir en una implementación de producción todavía ... Espero que surja la necesidad, en cuyo caso tendré que iniciar una rama legítima de "producción" en mi servidor remoto de git. La próxima vez que lo intente con: producción de git push heroku: maestro, supongo que se quejará y tendré que usar la bandera de "fuerza" para que heroku arroje lo que está rastreando. – Zaqintosh
Mi única otra pregunta es, ¿está utilizando su control remoto maestro para algo? ¿O trabajas en sucursales y despliegas/fusionas hacia/desde sucursales el 100% del tiempo? – Zaqintosh
Si debe o no forzar dependerá de si "producción" es un descendiente directo de lo que existe actualmente en el maestro remoto. Gemcutter utiliza la rama "principal" como troncal. Es donde van todos los últimos cambios. Las ramas de características se crean, luego se fusionan nuevamente en el tronco. En ocasiones, las transferencias de cometidos o entidades individuales se fusionan en la rama de producción, a veces el maestro se fusiona directamente si lo queremos todo. –