¿Cómo automatizar la implementación del código fuente y comstackdo (excluyendo el historial de git) a desarrolladores de terceros?

Voy a configurar algunas herramientas / técnicas / entornos para que cuando necesite proporcionar el código fuente para desarrolladores externos, lo haga sin el historial de git con un código sensible ya comstackdo y desmantelado. Por lo tanto, quiero automatizar este process, para que siempre proporcione la última versión sin el dolor de hacer todos los pasos necesarios con las manos en todo momento. Yo uso bitbucket y git.

¿Cómo se pueden lograr mis objectives usando bitbucket y git? ¿Necesito algunas otras herramientas?

PD Siéntase libre de editar la pregunta si no indica claramente la idea. Espero que esta pregunta no sea demasiado amplia y no caiga bajo restricciones

Parece que quieres escribir un gancho post-commit . Pero eso podría ser demasiado fino para usted. Simplemente escriba los pasos automáticos para .git/hooks/post-commit y cree ese ejecutable. Usted puede

 git --work-tree PATH_FOR_THIRD_PARTY checkout HEAD -- PUBLIC_FILES 

para actualizar PUBLIC_FILES para tus desarrolladores de terceros en PATH_FOR_THIRD_PARTY, donde supongo que publicas los datos para los desarrolladores de terceros.

Luego, para actualizar los resultados comstackdos, debe escribir algunos Makefile (o similar) para producir el resultado en PATH_FOR_THIRD_PARTY desde sus files ocultos.

Si elige el layout correcto para su repository, solo puede usar un directory PUBLIC_FILES, para pagar todos los PUBLIC_FILES a PATH_FOR_THIRD_PARTY/PUBLIC_FILES .

Tenga en count que con este método, el layout del directory será el mismo en el directory de publicación y en su repository.

BTW .: si un desarrollador de terceros cambia un PUBLIC_FILE en su directory, puede simplemente

 git --work-tree PATH_FOR_THIRD_PARTY add -u 

Utilizo este método a menudo para publicar files desde un repository git. Puedes simplemente

 git config -g alias.public '!git --work-tree $(git config --get public.root) ' git config public.root 'PATH_FOR_THIRD_PARTY' 

para que puedas decir

 git public diff --name-only 

o

 git public status -s -uno 

Creo que este método se conoce como o similar a un tree de trabajo independiente.

Si usa este método, debe verificar los files en su repository local después de realizar una confirmación pública:

 git public add -u; git public commit -m "John Doe changed something" git checkout HEAD -- . 

La última línea actualiza tu tree de trabajo local para alinearte con la confirmación que hiciste arriba.

La característica que creo que necesitas es git rebase con la opción interactiva -i (git rebase -i). Ver detalles del enlace: https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase

Esto creará una base nueva a la que puede dar acceso a un tercero. No soy un experto con la function de rebase. Por favor revise el enlace para más detalles.

Si no desea estar encerrado en un service en particular, esto es lo que puede hacer:

  • escriba una secuencia de commands que hace lo que necesita para proporcionar un file del código fuente, binarys comstackdos y otros resources (si corresponde)
  • debería poder ejecutar esta secuencia de commands en su propia máquina, para realizar testings / cambios fáciles
  • a continuación, escriba otro script para crear un package de estos de la manera que desee (crear un file ZIP, por ejemplo) y distribuirlo a un server FTP, Amazon S3 o cualquier otro service que desee
  • ahora deberías tener todo para automatizar esto para ti. Deberías poder hacer esto en tu propia máquina
  • si desea automatizar todo el process para que se ejecute cada vez que se cambie el código, con esta configuration puede elegir prácticamente cualquier service de Integración / Entrega Continua para ejecutarlo por usted, desencadenado por un bucle web de Bitbucket.

Si utiliza esta configuration, puede usar nuestro service ( https://bitrise.io/ – Soy el CTO) ya que tiene integrado el soporte para webbok de Bitbucket, incluso para una count gratuita, pero por supuesto puede elegir cualquier otro El service CI / CD ya que esta configuration no requiere nada más que soporte de gancho Bitbucket y la capacidad de ejecutar su secuencia de commands.

Intereting Posts