Jenkins Pipeline y stash Pull Request Builder no trabajan en creación / actualización de relaciones públicas

A continuación se muestra el requisito necesario para lograr el uso de la tubería de Jenkins y soy una abeja nueva en Jenkins Pipeline.

  • Después de completar el trabajo de desarrollo y llevar sus cambios a Bitbucket, el usuario crea una request de extracción.

  • Para aprobar una request de extracción, necesitamos al less una versión de Jenkins exitosa. Por lo tanto, nos gustaría get solo el resultado de compilation del código registrado para la request de extracción.

  • Cuando se crea / actualiza una request de extracción, Jenkins se activará automáticamente para una continuous integration real.

  • El resultado de compilation se informará a Bitbucket.

Usó Stash Pull Request Builder y el oculto Notifier para el process anterior que está trabajando para el proyecto de Freestyle normal.

Necesitamos migrar la funcionalidad similar utilizando el pipeline de Jenkins, así que hemos creado el trabajo jenkins como se muestra a continuación. enter image description here La secuencia de commands de la tubería para verificar la twig PR y desencadenar compilation es la siguiente

node { stage('Checkout') { checkout( [ $class: 'GitSCM', extensions: [ [$class: 'CleanCheckout'], ], branches: [ [name: ''] ], userRemoteConfigs: [[ cnetworkingentialsId: 'id', url: 'repourl.git' refspec: ('+refs/pull-requests/*/from:refs/remotes/origin/pr/*/from'), branch: ('origin/pr/${pullRequestId}/from') ]] ]) } stage('Build') { sh 'make' } stage('notify') { step([$class: 'StashNotifier']) try { // Do stuff currentBuild.result = 'SUCCESS' } catch(err) { currentBuild.result = 'FAILED' } step([$class: 'StashNotifier']) } } 

Aunque he hecho la configuration anterior cuando creo / actualizo el PR, la compilation no se desencadena automáticamente en jenkins. Supongo que la notificación de stash a jenkins no ocurrió porque especificamos "origin/${pullRequestId}/from" en el proyecto de estilo libre. Pero no tengo esa opción para especificar en el trabajo de canalización.

Intenté algunas alternativas como a continuación.

En lugar de stash Pull Request Builder, intenté con el proyecto "Poll SCM" y el trabajo cron especificado activarlo como "H/2 * * * * ". Al comprometerse, el trabajo se desencadena en jenkins. Significa que por cada commit se activa el trabajo jenkins. Pero Jenkins debería desencadenar el trabajo cuando se crea / actualiza PR .

También se basa en la pregunta siguiente, una respuesta dice "En el trabajo de estilo libre, agregue un activador para iniciar su trabajo de canalización como paso de desarrollo" que no encontré.

Me falta algo aquí sin duda, que podría ser básico y nuevo en jenkins pipeline.

¿Alguna pista para lograr el comportamiento deseado?