Wie man Jenkins JUnit-Ergebnisse bei Bitbucket veröffentlicht

383
wutzebaer

Wir haben einen Jenkins und wir haben einen lokalen Bitbucket-Server.

Wir haben bereits installiert

  • "Bitbucket Plugin" auf Jenkins
  • "Post Webhooks" auf Bitbucket

Dann setzen wir Jenkins ein

  • Niederlassungen zu bauen
    • Branch Specifier auf "**"

In Post Webhooks haben wir alle Ereignisse geprüft.

Wenn wir jetzt einen Zweig pushen oder einen Pull-Auftrag löschen, wird Jenkins ausgelöst und scheint jeden Zweig zu erstellen, der neue Commits hat. (Aber irgendwie wird es nicht ausgelöst, wenn wir eine Pull-Anfrage erstellen.)

Die Frage ist jetzt: Wie bringen wir unsere Testergebnisse zu Bitbucket, um eine Zusammenführung zu blockieren, wenn ein Test fehlschlägt?

Wir haben das Plugin "Violations to Bitbucket Server" gefunden, es werden jedoch nur Ergebnisse der statischen Code-Analyse und keine JUnit- oder Surfire-Berichte behandelt.

Das Ganze fühlt sich skizzenhaft an ... Gibt es ein gutes Tutorial, das erklärt, wie man Jenkins und Bitbucket in beide Richtungen integriert? Oder ist es nicht mit verfügbaren Plugins möglich?

0

1 Antwort auf die Frage

1
jayhendren

Es gibt drei Stücke hier:

  • Wie lösen Sie einen Build auf PR-Erstellung aus? Dafür habe ich das Plugin "Pull Request Notifier for Bitbucket" verwendet . Technisch benötigen Sie dies nicht, wenn Sie das Plugin "Bitbucket Branch Source" verwenden (siehe unten), aber es bietet eine gute Verbesserung der Lebensqualität für selbst gehostete Bitbucket Server-Benutzer.

  • Woher weiß Bitbucket, wann ein Jenkins-Build fehlgeschlagen ist? Hier gibt es verschiedene Möglichkeiten. Meines Erachtens ist das CloudBees-offizielle "Bitbucket Branch Source" -Plugin der beste Weg, dieses Problem zu lösen . Dieses Plugin kümmert sich um alle Aspekte des Setups, die Sie am Ende von Jenkins benötigen (wenn Sie die Bitbucket Cloud verwenden, kann es sich auch um die Konfiguration am Bitbucket-Ende kümmern). Dieses Plugin erkennt unter anderem Repositorys, Verzweigungen und Pull-Anforderungen automatisch. Es gibt auch Testergebnisse an Bitbucket zurück. Wenn Sie dieses Plugin aus irgendeinem Grund nicht verwenden möchten, gibt es auch andere Lösungen, die für mich funktioniert haben, insbesondere das Plugin "Stash Notifier". Dieses Plugin meldet Testergebnisse nur an Bitbucket zurück, mehr nicht.

  • Wie verhindern Sie, dass fehlerhafte PRs zusammengeführt werden? Dies kann mit den Repository-Einstellungen in Bitbucket behoben werden. Insbesondere Repository-Einstellungen> Zusammenführungsprüfungen> Minimale Anzahl erfolgreicher Builds. Wenn Sie dies auf alle Repos in einem Projekt anstatt nur auf ein Repo anwenden möchten, kann diese Einstellung auch auf Projektebene mit den neuesten Versionen von Bitbucket angepasst werden (seit 5.5, IIRC - ich bin zu faul Changelogs nachschlagen).