Tenemos Jenkins ejecutando pruebas unitarias cuando se realizan confirmaciones a nuestro repositorio en Bitbucket. Esto está controlado por el complemento de Bitbucket, es decir, a través de un webhook de Bitbucket.
Actualmente, si se realiza una confirmación en la Rama A, se inicia una prueba unitaria. Si mientras se ejecuta ese trabajo se realiza una segunda confirmación en la Rama A, se iniciará una segunda prueba unitaria, por lo que ahora hay dos pruebas unitarias en la misma rama pero con un código ligeramente diferente.
Nuestro comportamiento preferido es que la primera prueba de confirmación se suspendería cuando se inicie la segunda prueba, de modo que solo se ejecute la prueba de unidad más reciente. ¿Se puede lograr esto?
Para aclarar; Tenemos muchas ramas, por lo que no podemos evitar las compilaciones concurrentes, cancelar la última tan pronto como comience la próxima, etc. Cualquier método que se use debe verificar específicamente si la rama ya tiene un trabajo en ejecución, no si el trabajo en general ya está corriendo.
He visto algunos controles de activación para Git, pero no Bitbucket. También encontré un script para verificar si el trabajo ya se está ejecutando y cancelarlo si es así, pero como se mencionó anteriormente, eso no se adapta a nuestro caso de uso. ¿Me estoy perdiendo de algo?