Construcciones duplicadas desencadenadas en la tubería de múltiples twigs Jenkins

Estamos viendo construcciones duplicadas desencadenadas en los proyectos de oleoductos multifilares Jenkins. Las comstackciones se desencadenan normalmente utilizando notifications push de Bitbucket utilizando este complemento: https://marketplace.atlassian.com/plugins/com.nerdwin15.stash-stash-webhook-jenkins/server/overview

Sin embargo, ahora estamos viendo construcciones 'dobles' por alguna razón. Si nos fijamos en las 2 comstackciones que se activan, una se activa mediante una 'notificación de compromiso' y la otra se desencadena por 'Indización de twigl'.

¿Qué está causando la indexing de la bifurcación y por qué está desencadenando una compilation? No estamos agregando o eliminando twigs, es solo un compromiso / empuje normal.

Para hacerlo más complicado, no está sucediendo todo el time. En un momento pensé que solo estaba sucediendo después de las fusiones, pero ese no es el caso. Además, parece que una forma de detenerlo es eliminar el historial de compilation de un trabajo (que obviamente no es ideal).

Estamos estableciendo properties en el trabajo desde el script de canalización, pero solo para descartar comstackciones antiguas:

properties([buildDiscarder(logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '20'))]) 

Otra fuente de confusión parece ser si uno debe tener el sondeo habilitado (sin intervalo) para que las notifications automáticas funcionen para el complemento Git. La documentation para el complemento Git indica que esto es necesario, y de hecho parece ser para comstackciones de canalizaciones "normales", pero no parece ser necesario para comstackciones de tuberías de múltiples filas. ¿Es esto correcto? Desde la wiki de Jenkins Git Plugin:

Esto escaneará todos los trabajos que:

Tienen activadores de compilation> Poll SCM habilitado. No se requiere un horario de votación. Están configurados para build el repository en la URL especificada. Están configurados para comstackr las twigs especificadas opcionalmente o la ID de confirmación. Para trabajos que cumplan estas condiciones, la interrogación se activará inmediatamente. Si el sondeo encuentra un cambio digno de una construcción, a su vez se activará una construcción.

Estamos utilizando Bitbucket 4.8.4 y Jenkins 2.30 (y todos los últimos complementos de canalización).

Como la otra respuesta ya sugirió, la opción "No permitir comstackciones simultáneas" es lo que desea. Y puedes getlo a través del Jenkinsfile :

  properties ([ buildDiscarder(logRotator(artifactNumToKeepStr: '5', daysToKeepStr: '15')), disableConcurrentBuilds() ]) 

EDITAR:

Esta no es la solución para el problema real aquí. pero aún parece útil para algunas personas, así que lo dejo siempre y cuando no tengamos una mejor respuesta.

Estoy usando una canalización de múltiples sucursales también y es posible que tenga algo de información para usted.

Cuando crea un trabajo de "organización GitHub" en Jenkins y agrega la información relevante de Git, también debe seleccionar cómo se activan las comstackciones de Jenkins y con qué frecuencia:

enter image description here

Jenkins escaneará los repositorys de su organización configurada de GitHub tan a menudo como lo configure.

Entonces, Jenkins activará automáticamente una compilation tan pronto como descubra que se ha confirmado una nueva confirmación (siempre que se haya configurado el webhook de Jenkins-Git).

Cuando se lleva a cabo la indexing de twigs, también desencadena una compilation.

En otros styles de trabajo de Jenkins, puede configurar "No permitir construcciones simultáneas", pero no pude encontrar esta configuration para un estilo de trabajo de múltiples twigs.

Espero que esto arroje algo de luz sobre el asunto.

Indicó que está utilizando https://marketplace.atlassian.com/plugins/com.nerdwin15.stash-stash-webhook-jenkins/server/overview . Si todavía está usando ese complemento, sospecho que estará más contento con lo que ahora parece ser el complemento compatible para la integración de jenkins / stash (también conocido como server bitbucket): https://marketplace.atlassian.com/plugins/nl. topicus.bitbucket.bitbucket-webhooks / server / overview . Tenga en count cómo dice que necesita "al less esta confirmación del bitbucket-webhooks-plugin para el server Bitbucket" en los documentos del complemento fuente de bitbucket . Lo estamos usando y nunca he visto dos versiones activadas por la misma notificación de inserción. Cuando activa una compilation manualmente, sí, pero no con la misma notificación de inserción. 🙂