2012-04-04 21 views
5

Tengo un servidor de git local (centOS) donde todos llevan su trabajo a ese repositorio. Jenkins logra construir lo que sea en ese repositorio de la noche a la mañana. Últimamente tengo una cuenta de Git Enterprise. Me he estado preguntando si hay alguna manera de forzar a Jenkins a: 1) Solo saca el código del servidor local y 2) Cuando una compilación tuvo éxito, envía el código al repositorio remoto de la empresa git.Obtener de un servidor de git y enviar a otro servidor usando Jenkins

estoy usando Jenkins v. 1.458

Respuesta

7

así, una opción sería simplemente crear un script que hace esto desde fiesta ... pero ...

Usted puede añadir dos repositorios Git en la sección "administración de código fuente" después de instalar el Multiple SCMs plugin, y luego especifique que desea construir REPOLOCALNAME/branch, y luego al final en 'Git publisher' especifique que desea fusionar y enviar a la sucursal remota. (es decir, BranchToPush = nombre de rama y TargetRemoteName = REMOTEREPONAME)

* Recuerde, los nombres se especifican en las opciones avanzadas del repositorio cuando se lo agrega en la sección SCM.

* No lo he probado, existe la posibilidad de que solo permita tirar y empujar desde y hacia el mismo repositorio.

+0

¿Pero lo sabes? ¿Cómo podemos hacer esto con un script? – Peymankh

+2

No fue tan fácil, pero finalmente pude lograrlo, y fue básicamente como lo que dijiste, gracias. – Peymankh

+0

disculpa por no ser más explícito/responder antes: S Me alegra saber que lo has conseguido. Al final, ¿tuvo que hacer un script bash personalizado? o pudiste hacerlo funcionar desde dentro de jenkins? – CasualT

0

Usted podría crear el impulso para Github como el último paso de generación que sólo se ejecuta después de todo lo demás ha tenido éxito y el uso de los mecanismos normales para recuperar el código de lo local repositorio git No hay un complemento que tenga esta funcionalidad en este momento.

+0

Bueno, en lugar de GitHub estoy usando GitEnt, pero ese no es el caso. Ok, ¿alguna sugerencia sobre cómo hacerlo o tal vez un tutorial? – Peymankh

+0

Lo siento, lo leí mal. Sin embargo, el proceso debería ser el mismo: para el repositorio que usa Jenkins, configure un nuevo control remoto (una vez) y luego empújelo hasta el final de cada compilación. Hay un breve tutorial sobre cómo hacer eso [aquí] (http://thelucid.com/2008/12/02/git-setting-up-a-remote-repository-and-doing-an-initial-push/) por ejemplo. –

Cuestiones relacionadas