Mejores prácticas: Git + Automatización de compilación: mantener las configuraciones separadas
Buscando el mejor enfoque para mantener mis archivos de configuración separados, pero sin introducir pasos adicionales para los nuevos desarrolladores que configuran sus entornos.
Supongo que un submódulo sería suficiente para hacer el trabajo, pero entonces, ¿cómo cambiaría las configuraciones sin problemas dependiendo de la tarea en cuestión, es decir, ingresar la configuración DEV con regularidad, extraer la rama PROD del repositorio de configuración durante la compilación?
Necesita ser:
- Fácil e indoloro para nuevos desarrolladores.
- Los archivos de configuración PROD solo deben ser accesibles para usuarios seleccionados + usuario de compilación.
Gracias de antemano.
Esto se llama controlador de filtro de contenido y le permite declarar, en un .gitattributes
archivo (y solo para su tipo de archivos de configuración) un script de difuminado que se ejecutará automáticamente al finalizar la compra :
- combinar un archivo de plantilla de archivo de configuración (
config.tpl
) - con el valor correcto del archivo de configuración (
config.dev
,,config.prod
...) - para producir un archivo de configuración sin versión (archivo privado)
Consulte " Personalizar Git - Atributos de Git ":
echo '*.cfg.tpl filter=config' >> .gitattributes
git config --global filter.config.smudge yourScript
Con ese enfoque, no necesita submódulos, pero puede generar tantos archivos de configuración como necesite dependiendo de su entorno, como por ejemplo su rama:
un poco como en " Buscar el nombre de la rama de Git en el enlace posterior a la actualización ", su mancha El script puede averiguar en qué rama se está ejecutando actualmente:
#!/bin/sh
branch=$(git rev-parse --symbolic --abbrev-ref HEAD)