¿Cómo disminuir el time para la configuration de env del proyecto?

En nuestro proyecto, escribimos muchos loggings de aplicaciones (a veces son muy útiles) en la carpeta tmp .

En esta carpeta tenemos directorys de componentes, tales como:

  • api
  • email2sms
  • scheduled_sending
  • facturación
  • etc. Menos de 10 carpetas, en resumen.

El problema: la carpeta de los nuevos componentes surge con el time; cada una de estas carpetas debe poder escribirse.

Por lo tanto, lleva time que cada desarrollador modifique cada una de estas carpetas en sus entornos locales, lleva time modificar esa carpeta en producción.

¿Cómo se puede resolver este problema? ¿Cómo se puede automatizar este process (tarea Apache Ant, properties SVN, script de la aplicación, que debe ser responsable de la tarea)?

Medio ambiente: Entornos de desarrollo: Ubuntu, Windows; producción – FreeBSD

El método rápido y sucio que he usado en la mayoría de las empresas para las que trabajo fue algo como esto:

  1. Coloque todo el código en un sistema de control de versiones (como SVN o algo así) para que todos los desarrolladores tengan una única fuente de files. Obviamente ya estás haciendo esto. ¡Viva!
  2. Coloque la raíz de ese código, un file llamado setup_permissions.sh que actualiza todo el entorno local. Esto puede include permissions, o lo que sea que necesite ejecutar.
  3. Todas las mañanas, todos los progtwigdores hacen svn update , que actualiza los files, y también setup_permissions.sh .
  4. Intentan ejecutar su código. Ver un problema Ejecutan setup_permissions.sh .
  5. ¡Todo esta bien en el mundo!

En cuanto a los contenidos de setup_permissions.sh , podría ser algo como:

 #/bin/sh TMP=/tmp mkdir $TMP/api mkdir $TMP/email2sms mkdir $TMP/scheduled_sending mkdir $TMP/billing chmod 777 -r $TMP/api $TMP/email2sms $TMP/scheduled_sending $TMP/billing 

Y agregue más commands que sienta que necesita.
(Ah, y no use chmod 777 … es una idea terrible. Solo vea esto como un ejemplo).

La key de este enfoque es la disciplina . Debe confiar en que sus progtwigdores tengan la disciplina para ejecutar setup_permissions.sh cuando actualicen sus entornos locales. Lo mismo aplica para quien actualiza el sistema de producción.

También debe tener la disciplina para actualizar setup_permissions con cualquier cambio que realice en la estructura del directory, y cualquier cambio de permiso que necesite, en lugar de simplemente hacer los cambios manualmente en su computadora, y dejándolo así. (Y lo mismo ocurre con todos los demás desarrolladores que realizan cambios en la estructura del directory).

el (progtwig / componente) que crea el logging debe ser responsable de hacer que los files de logging puedan escribirse a todos: para usar mod = 777 (todos editables) cuando se crean los loggings.

si implementa el process tiene un script de installation, también hágalo en el script.

mkdir y chmod en un simple script de shell deberían ser suficientes.