Unser Build-Prozess umfasst Git, Gerrit und Jenkins. Wenn ein Jenkins-Build defekt ist, muss jemand die letzten Commits analysieren und den einzelnen Committern die Fixierungsaufgabe zuweisen. Alle Entwickler mit Commits seit dem letzten Stable-Build erhalten auch eine E-Mail, aber das sagt einfach "Build ist kaputt".Automatisierte Beschuldigung für zerbrochenen Build in Jenkins
Mit etwas maschinellem Lernen scheint es möglich zu sein, dass der Committer "höchstwahrscheinlich" einen Testfehler verursacht hat. Sagen wir, ich habe zwei Commits seit der letzten stabilen Aufbau
Commit abcdef by Bob
Working on database reset logic
awesome-project/src/main/java/com/foobar/database/Reset.java
awesome-project/src/test/java/com/foobar/database/ResetTest.java
Commit abcdef by Fred
Add new VAT codes for Delaware
awesome-project/src/main/java/com/foobar/finance/VatTable.java
awesome-project/src/main/java/com/foobar/finance/VatLogicForDelawreImpl.java
awesome-project/src/test/java/com/foobar/statescenarios/DelawareTest.java
Und jetzt ist es ein Build Ausfall
Stacktrace
java.lang.AssertionError: Expected <6> but was <7>
at com.foobar.finance.VatTableTest()
Gibt es ein Plugin gibt, die Fred Schuld wird nicht der VatTableTest aktualisiert haben nach einer neuen Zugabe Mehrwertsteuerzeile für Delaware? Von diesem StackTrace-Klassen, Fehlermeldung mit Commit-Nachricht und commited-Dateien kombiniert scheint es, dass sollte möglich sein (Ich würde gerne akzeptieren, "die folgenden Fehler konnten nicht zu einem bestimmten Festschreiben zugewiesen werden")
Danke, Simon
Vorbeugen ist besser als heilen. Merge Request Builds lösen dieses Problem mit gitlab/github. Sie erstellen, führen Tests vor dem Zusammenführen durch. Ich weiß nicht, wie es in Gerrit funktioniert. Verwenden Sie Gerrit für die Code-Überprüfung und können Sie ändern, dass Sets separat erstellt werden. – Vishwanath
Machine Learning zu prognostizieren, welche Commit den Build brach? Komm schon. Kannst du nicht einfach eine 'git bisect'-Sitzung erstellen, um das erste Commit zu finden, das nicht erstellt wird, und davon ausgehen, dass der Autor des Commits dort ist, wo die Recherche beginnen soll? –
@ Vishwanath, haben wir Gerrit Build-Verifikation an Ort und Stelle. Es gibt immer noch viele Build-Schritte nach dem Zusammenführen, die scheitern können und müssen. UI-Tests sind ein Hotspot. – Simon