Wir lassen Jenkins Unit-Tests durchführen, wenn Commits für unser Repo in Bitbucket vorgenommen werden. Dies wird vom Bitbucket-Plugin gesteuert, dh über einen Bitbucket-Webhook.
Derzeit wird ein Unit-Test gestartet, wenn ein Commit für Zweig A vorgenommen wird. Wenn während der Ausführung dieses Jobs ein zweites Commit für Zweig A durchgeführt wird, wird ein zweiter Komponententest gestartet. Daher gibt es jetzt zwei Komponententests für denselben Zweig, jedoch mit leicht unterschiedlichem Code.
Unser bevorzugtes Verhalten ist, dass der Test des ersten Commits abgebrochen wird, wenn der zweite Test gestartet wird, sodass nur der letzte Komponententest ausgeführt wird. Kann das erreicht werden?
Zu klären; Wir haben viele Zweige, so dass wir nicht einfach gleichzeitige Builds verhindern, den letzten abbrechen können, sobald der nächste startet usw. Unabhängig von der verwendeten Methode muss speziell geprüft werden, ob für den Zweig bereits ein Job ausgeführt wird, und nicht, ob der Job im Allgemeinen bereits ausgeführt wird Laufen.
Ich habe einige Trigger-Steuerelemente für Git gesehen, aber nicht Bitbucket. Ich habe auch ein Skript gefunden, um zu überprüfen, ob der Job bereits ausgeführt wird, und ihn gegebenenfalls abzubrechen, aber wie bereits erwähnt, passt dies nicht zu unserem Anwendungsfall. Vermisse ich etwas