Cómo usar apropiadamente scripts CI con ganchos Git para comprimir fuente

Tengo una twig de feature y una twig de testing (para la regresión inicial). Me gustaría tener una copy de trabajo disponible para mi twig de testing para el entorno de testing. Sin embargo, necesito comprimir parte del código fuente (no en binary, simplemente optimizar) a través de un script. Puedo representar esta secuencia de commands a través de un gancho Git posterior a la recepción.

Estoy tratando de diseñar mi script bash (para CI) para que sea bastante robusto y quiera evitar la automation que causa conflictos de Git. Estoy pensando en tener un repository principal ( origin ) y un repository de entorno de testing ( ci_test ) simplemente para permitir que CI se comprometa.

Estoy pensando en presionar para ci_test/testing cuando promocione la fuente. CI debe comprimir, agregar, comprometer, search desde el origin/testing , fusionar si es necesario (tomando los conflictos iff completos), luego presionar hasta origin/testing .

El problema de mi model anterior es que Git se queja cuando bash presionar ci_test/testing porque tiene una copy de trabajo (tiene sentido, porque puede que no estén sincronizados). ¿Existe una forma adecuada (automatizada) de utilizar las secuencias de commands de Integración Continua con Git para que sigan siendo rastreados?

El problema de mi model anterior es que Git se queja cuando bash presionar ci_test/testing porque tiene una copy de trabajo (tiene sentido, porque puede que no estén sincronizados).

Tu también puedes:

  • asegúrese de que su ci_test sea ​​un repository ci_test , con un gancho post-receive que:

    • revisa tus testing sucursales
    • desencadena todas tus operaciones
  • o, si usted es el único que está presionando a ese ci_testing remoto ci_testing , configure el Git remoto para que acepte los empujones a un repository no descubierto.
    Esto es posible desde Git 2.3+ con:

     git config receive.denyCurrentBranch updateInstead 

Y con Git 2.4+ , puede configurar el ci_testing remoto con un ci_testing " push-to-checkout ", que puede instalarse en el server para personalizar exactamente lo que sucede cuando un usuario empuja a la sucursal check-out.