¿Cómo logro que Jenkins construya push en un repository BitBucket git?

Tengo un repository git alojado en BitBucket, y he configurado la authentication SSH entre el repository y mi server Jenkins. Puedo build sobre Jenkins manualmente, pero no puedo get el service de Jenkins en BitBucket para desencadenar comstackciones.

Jenkins configuration: - Project Name: [my_jenkins_job] - Build Triggers: --Trigger Builds Remotely: ---Token: [token] BitBucket configuration: - Endpoint: http://[my_jenkins_address]/job/[my_jenkins_job]/build (I've also tried build?token=[token]) - Project Name: [my_jenkins_job] - Module Name: [blank] - Token: [token] 

La visita a http: // {my_jenkins_address} / job / {my_jenkins_job} / build? Token = {token} inicia una compilation correctamente.

¿Por qué no empujar un cambio a BitBucket hace que Jenkins inicie una compilation?

Tengo nuestra instancia de Jenkins configurada para sondear el repository cada minuto. ¿No es lo suficientemente frecuente para tus necesidades?

Nuestra configuration de Jenkins:

Disparadores de compilation> Poll SCM = Checked

Disparadores de compilation> Poll SCM> Schedule =

 # every 1 minute */1 * * * * 

Debido a que el Jenkins Hook of Bitbucket no funciona en absoluto para mí y tengo diferentes proyectos de Jenkins para diferentes twigs, he llegado a esta solución:

  • Instale el complemento Bitbucket en su Jenkins
  • Agregue una publicación normal como gancho a su repository Bitbucket ( Configuración -> Ganchos ) y use la siguiente url:

https: // SU.JENKINS.SERVER: PORT / bitbucket-hook /

y si tiene la authentication de configuration en jenkins, entonces la URL debe ser como

https: // NOMBRE DE USUARIO: CONTRASEÑ[email protected]: PORT / bitbucket-hook /

  • Configure su proyecto Jenkins de la siguiente manera:
  • en el disparador de compilation habilitar Build cuando un cambio es empujado a BitBucket
  • en Gestión de código fuente, select GIT ; ingrese sus cnetworkingenciales y defina Sucursales para comstackr (como ** feature / * )

De esta manera, tengo tres proyectos de compilation, uno para todas las funciones, uno para desarrollo y otro para lanzamiento. Asegúrese de include la barra inclinada ('/') al final de la URL o el gancho no funcionará.

Y lo mejor de todo es que no tienes que anunciar nuevos ganchos para los nuevos proyectos de Jenkins.

De hecho, puedes hacer que esto funcione en Jenkins con el service Bitbucket, pero te costó bastante trabajo ponerlo en funcionamiento.

Si usa la authentication, puede get un token API de uno de los usuarios que pueden crear comstackciones. Creé una count separada solo para Bitbucket. Necesitarás al less Jenkins 1.426 para usar el token API. A continuación, puede usar la authentication HTTP con el token API como su contraseña para el service Bitbucket.

Así es como el mío está configurado:

Punto final: http: // [bitbucket]: [APITOKEN] @ [www.example.com/jenkins/]

Nombre del proyecto: [NameOfMyJenkinsProject]

Nombre del module: [vacío]

Token: [Token encontrado en la configuration del proyecto Jenkins]

Después de configurarlo así, pude usar el token y la authentication para habilitar comstackciones activadas por inserción desde Bitbucket.

El token es inútil si usas authentication en Jenkins.

use el complemento Git y use un http[s]://your.site.com[/jenkins]/git/[email protected]:your-username/your-repo.git POST con http[s]://your.site.com[/jenkins]/git/[email protected]:your-username/your-repo.git en eso. Asegúrese de que la votación esté activada y programe algún valor, o esto no funcionará.

Usar Poll SCM es bueno, aunque tiene algunas desventajas también, obtendrá metadatos de tu GIT Repository, que de todos modos está usando un porcentaje del ancho de banda de tu server bitbucket y el server Jenkins.

Es mejor que Bitbucket sepa cuándo activar Jenkins si llega alguna nueva actualización. Si está utilizando las últimas versiones de bitbucket, hay un nombre de complemento "Stash webhooks for Jenkins" que ahora es compatible con Bitbucket.

Dentro de este complemento, solo tiene que especificar la URL de Jenkins y el nombre de JOB, esto también proporciona una capa adicional de security entre Jenkins y Bitbucket. enter image description here

Este es el complemento (Stash webhooks para Jenkins que no se llama webbucks Bitbucket para Jenkins) que se puede download desde Atlassian Marketplace.

enter image description here Arriba está la configuration del complemento donde debe especificar la URL de Jenkins y la URL de Repo Clone. Con el disparador, también puede verificar la connection, etc.

Enlace para el complemento: Bitbucket webhooks para Jenkins

Cómo funciona este complemento:

  1. Instala el complemento de Git en Jenkins. Configure su proyecto para usar Git para su gestión de código fuente. Deberá conservar la URL del repository que usa para la configuration en Stash. Habilite la opción Poll SCM en Build Triggers. Esto es necesario para activar de forma remota una compilation. Como realmente no necesitamos sondear, puede configurar la frecuencia de sondeo con poca frecuencia. Guarde la configuration de su proyecto.

    1. Ingrese la URL de su instancia de Jenkins y la URL del repository que configuró Jenkins para usar. Puede utilizar el menu desplegable para get la URL de clonación para cada protocolo compatible. Después, siéntete libre de cambiarlo para que coincida con tu instancia de Jenkins.

    2. ¡Eso es!

    Con Jenkins y Stash ahora configurados, si usted ingresa el código, se producirá automáticamente un desencadenador de compilation. Lo que sucede es que el gancho posterior a la recepción activa una request GET a Jenkins, que luego le dice que sondee el repository (por qué necesita que se encienda la votación). La encuesta comtesting si realmente hay algún cambio. Como hay, ¡desencadena la construcción!

Simplemente instale el complemento bitbucket y siga las instrucciones que se encuentran en la página de complementos:

Configure su repository BitBucket con un gancho POST, usando la URL JENKINS_URL / bitbucket-hook (sin necesidad de cnetworkingenciales). En cada confirmación, se activarán todos los trabajos con la opción "Crear cuando se cambie un cambio a BitBucket".

Vea aquí: https://wiki.jenkins-ci.org/display/JENKINS/BitBucket+Plugin