Despliegue continuo con gitignore

12

Al realizar una implementación continua con Git, ¿cómo maneja los archivos ignorados en gitignore? Esos archivos se ignoran por razones de privacidad (es decir, no quieren que se envíen a otros repositorios remotos, como GitHub), pero con esos archivos ignorados que no se envían al repositorio de implementación continua, su aplicación no se ejecutará (ya que los archivos ignorados son requerido para que el software funcione correctamente).

¿Cómo suelen hacer esto las personas? En este caso, ¿Git no es el mejor candidato para la implementación continua debido a los archivos ignorados?

usuario3175663
fuente
2
Estoy votando para cerrar esta pregunta como fuera de tema porque no muestra un esfuerzo mínimo de investigación básica.
Escaso Roger
3
No veo falta de esfuerzo de investigación. El OP parece entender lo que gitignore hace perfectamente bien. Lo que sí veo es un problema XY, pero debido a que tanto X como Y se explican en la pregunta, Doc pudo escribir una respuesta decente que, con suerte, resuelva el problema real del OP.
Ixrec
1
@ScantRoger: honestamente, la pregunta podría escribirse mejor, pero está lejos de ser tan mala que merece un voto cercano.
Doc Brown

Respuestas:

14

Si su software no se ejecuta sin esos archivos, tendrá un problema con cualquier tipo de implementación, manual, automática o continua, con cualquier tipo de VCS, o incluso sin ningún VCS. Entonces, cambie su software para que pueda ejecutarse realmente sin esos archivos (por ejemplo, podría asumir algún tipo de "parámetros predeterminados" si faltan los archivos), o proporcione alguna versión de esos archivos adecuada para la implementación que se copian ( como parte del paso de implementación) al entorno de destino en caso de que no exista una versión "privada" de esos archivos.

Si está hablando de algo como un archivo que contiene credenciales de base de datos para iniciar sesión en el servidor, que, por razones de seguridad, no desea tener el control de versiones, entonces tendrá que poner ese archivo en el entorno de implementación una vez , probablemente manualmente , por una persona que tenga suficientes derechos o conozca la contraseña. Pero eso es intencional y no debería impedir que implemente nuevas versiones diarias de su software. Solo asegúrese de que no se sobrescriban los archivos de credenciales en su lugar cuando implemente una nueva versión.

Doc Brown
fuente
De acuerdo, si salir de vcs no es suficiente para construir y ejecutar, aunque en una capacidad reducida, entonces su árbol de origen está incompleto.
Newtopian
@Newtopian: tenga en cuenta que esto puede ser intencional y correcto (vea mi ejemplo).
Doc Brown
2

Otra opción es almacenar la información confidencial dentro de su herramienta de implementación. Y la configuración de la herramienta de implementación en un repositorio de origen privado separado.

Dejar los datos confidenciales en la máquina de destino funciona, pero podría descomponerse: alguien lo cambia sin seguir los procedimientos, la máquina frena y nadie recuerda la configuración correcta, etc.

Saltstack, por ejemplo, tiene https://docs.saltstack.com/en/latest/topics/pillar/index.html

Patricio
fuente