Temos Jenkins executando testes de unidade quando são feitas confirmações em nosso repositório no Bitbucket. Isso é controlado pelo Bitbucket Plugin, ou seja, através de um webhook Bitbucket.
Atualmente, se uma confirmação for feita na Filial A, um teste de unidade será iniciado. Se enquanto esse trabalho estiver sendo executado, uma segunda confirmação for feita na Ramificação A, um segundo teste de unidade será iniciado, então agora existem dois testes de unidade na mesma ramificação, mas com um código ligeiramente diferente.
Nosso comportamento preferido é que o primeiro teste de confirmação seja abortado quando o segundo teste iniciar, de modo que apenas o teste de unidade mais recente esteja sendo executado. Isso pode ser alcançado?
Esclarecer; Como temos muitas ramificações, não podemos apenas impedir compilações simultâneas, cancelar a última assim que a próxima iniciar, etc. Qualquer que seja o método usado, deve verificar especificamente se a ramificação já possui um trabalho em execução, não se o trabalho em geral já está corrida.
Eu já vi alguns controles de gatilho para o Git, mas não o Bitbucket. Também encontrei um script para verificar se o trabalho já está em execução e cancelá-lo, se sim, mas como mencionado anteriormente, isso não se adequa ao nosso caso de uso. Estou esquecendo de algo?