Diferentes versiones del mismo archivo de configuración en diferentes sucursales

Estamos usando dotCloud, un servidor virtual, para ejecutar algunas de nuestras aplicaciones. dotCloud implementa aplicaciones directamente desde un repositorio de git y lee un archivo de configuración llamado dotcloud.yml de ese repositorio para configurar y ejecutar la pila.

Tenemos dos sucursales (una de producción y otra de ensayo) que forman parte del mismo repositorio, y estas impulsan a separar las instancias de dotCloud. Hay una pequeña diferencia en el archivo dotcloud.yml para ejecutar cada una de estas instancias.

¿Cuál es la mejor manera de administrar este archivo dotcloud.yml? Actualmente, simplemente nos aseguramos de que el archivo dotcloud.yml sea correcto en cada rama, pero se sobrescribe constantemente a medida que fusionamos los cambios de la preparación al maestro.

preguntado el 03 de mayo de 12 a las 08:05

¿Puede describir esta "pequeña diferencia" en dotcloud.yml entre sus sucursales de producción y montaje? -

Supongo que las variables de entorno y tal. -

2 Respuestas

Tú podrías:

  • versión a dotcloud.yml.template
  • versión a dotcloud.yml.value.prod y dotcloud.yml.value.staging con los valores pertinentes para cada entorno.
  • versionar un smudge script encargado de construir el derecho dotcloud.yml (que ya no estaría versionado) según la instancia de dotCloud.

Declararías ese script difuminado como un controlador de contenido de filtro en un (también versionado) .gitattribute presentar:

controlador de filtro

En cualquier pago de git, se llamará al script smudge y, si reconoció el dotcloud.yml.template contenido, construirá el derecho dotcloud.yml archivo.

contestado el 23 de mayo de 17 a las 13:05

Tú podrías:

  • add dotcloud.yml a .gitignore, tener dos archivos separados para la puesta en escena y la producción (por ejemplo, dotcloud.yml.staging y dotcloud.yml.production), ambos presentes en su repositorio git, configure un enlace simbólico dotcloud.yml → dotcloud.yml.productiony empujar con dotcloud push --rsync (El --rsync flag anulará la detección del mecanismo push y se activará el mecanismo rsync, en lugar del mecanismo git);
  • usa el mismo dotcloud.yml archivo, pero depende de un mecanismo diferente (por ejemplo, dotcloud var o con una postinstall guión) para alternar entre los comportamientos de producción y puesta en escena.

Respondido el 06 de enero de 14 a las 19:01

Tenga en cuenta que la nueva herramienta dotcloud cli (0.9) no tiene la --all bandera para dotcloud push así que esta respuesta no funcionará. - andres.rancho

Estás bien; se ha cambiado a --rsync. Actualicé mi respuesta. ¡Gracias! - jpetazzo

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.