Trotz der zunehmenden Konkurrenz bleibt Jenkins einer der beliebtesten Server für kontinuierliche Integration. Es wurde während des berüchtigten Hudson-Community-Splits entwickelt, der stattfand, nachdem der Softwaregigant Oracle die Kontrolle über das quelloffene Hudson übernommen hatte – ein Schritt, der die Entwickler-Community entflammte und das Internet mit hitzigen Debatten in Brand setzte.
Die gute Nachricht für alle Entwickler, die daran glauben, dass es wichtig ist, quelloffene Software aus den Händen großer Unternehmen herauszuhalten, ist, dass in der anschließenden Schlacht zwischen Hudson und Jenkins Jenkins als Sieger hervorging.
Ein Teil des Grundes dafür war die schiere Anzahl an hervorragenden Jenkins-Plugins, die von der Jenkins-Community entwickelt wurden. Gegenwärtig verfügt Jenkins über mehr als 1.500 Plugins, die Entwicklern helfen, große Teile der Projektentwicklung zu automatisieren. Diese Plugins können bei Aufgaben helfen, die von der Unterstützung bei der kontinuierlichen Bereitstellung über die Übertragung von Dateien von einem Projekt zu einem anderen bis hin zur Anzeige von Jenkins-Projekten in JIRA reichen, und so weiter und so fort.
Da jedes dieser Plugins unterschiedliche Probleme löst, ist es keine leichte Aufgabe, die besten Jenkins-Plugins auszuwählen. Anstatt eine Kontroverse zu entfachen, möchte ich in diesem Artikel einige der nützlichsten Plugins vorstellen, die Entwicklern helfen, Zeit zu sparen und ihnen das Leben erleichtern.
Um diesen Artikel breiter zu gestalten, habe ich eine Mischung aus Plugins ausgewählt, von denen einige für einzelne Entwickler und andere für große Entwicklungsteams nützlich sind.
- Job DSL
Ein Problem, das viele Entwickler, die mit Jenkins an mehreren Jobs arbeiten, kennen, ist die wiederholte Konfiguration jedes neuen Jobs, den sie starten. Dies ist nicht nur sehr zeitaufwändig (wenn man bedenkt, dass viele Vollzeitprogrammierer an Hunderten von Aufträgen pro Jahr arbeiten), sondern kann auch dazu führen, dass sich ihre Arbeit eintönig anfühlt.
Das Jenkins Job DSL-Plugin ermöglicht es Programmierern, Groovy zu verwenden, um Aufträge zu definieren und einen gemeinsamen Satz von Elementen für sie zu konfigurieren. Das Plugin verwaltet dann diese Skripte und aktualisiert die Auftragsinformationen automatisch. So können Programmierer mit der Domain Specific Language (DSL) standardisierte Vorlagen erstellen, was die Einrichtung neuer Projekte zu einem Kinderspiel macht.
2. Job Generator Plugin
Für Projektmanager und Entwicklerteams, die an der Entwicklung großer Projekte beteiligt sind, kann die Verfolgung des Auftragsfortschritts bestenfalls ein Albtraum sein. Mit dem Jenkins Job Generator Plugin können Projektmanager, die für eine bestimmte Jenkins-Pipeline verantwortlich sind, den Entwicklern in ihrem Team die Erlaubnis erteilen, neue Jobvorlagen zu erstellen, die dann zum Starten neuer Projekte/Entwicklungszweige verwendet werden können.
Es ist zwar möglich, dies manuell zu tun, aber auch diese Aufgabe kann sehr zeitaufwändig sein, vor allem, wenn Ihr Projekt mehrere Pipelines hat. Der Vorteil des Job Generator Plugins gegenüber dem Job DSL Plugin ist, dass es keine Groovy-Kenntnisse voraussetzt.
3. Performance Plugin
Dies ist ein wirklich cooles Tool für Entwickler. Es ermöglicht Entwicklern, Berichte von einer ganzen Reihe von Testtools zu erfassen, darunter JUnit, JMeter, Twitters Lago und Taurus. Sie können die Informationen über die Leistung Ihres Projekts in Jenkins über Diagramme und Grafiken anzeigen. Dies ist ein großartiges Beispiel für ein erstklassiges Jenkins-Grafik-Plugin.
4. GitHub/GitLab Pull Request Builder
Dieses sehr beliebte Git-Plugin für Jenkins ermöglicht es Entwicklern, Code-Reviews einfach zu automatisieren. Nach dem Initiieren einer Pull-Anfrage ruft das Plugin den Quellcode und die Build-Ergebnisse ab, so dass Entwickler schnell sehen können, ob ihr Code richtig ist.
Dieses großartige Plugin ermöglicht es Entwicklern auch, eine automatische Zusammenführung zu initiieren, sofern der Code die Überprüfung besteht.
5. JIRA-Plugin
Das im Dezember 2016 veröffentlichte JIRA-Plugin tut so ziemlich genau das, was auf der Dose steht. Es ermöglicht Entwicklern die Integration von JIRA in Jenkins. Viele Entwicklungsteams verwenden JIRA sehr häufig, so dass die Möglichkeit, Jenkins über JIRA anzuzeigen, den Entwicklungsprozess rationalisiert.
6. Kubernetes Plugin
Für Entwicklerteams, die mehrere Projekte gleichzeitig ausführen, kann Jenkins manchmal frustrierend sein, da es keine großartige Serverskalierbarkeit bietet. Dieses Problem wird durch das Kubernetes-Plugin gelöst, das es Entwicklern, die Kubernetes verwenden, ermöglicht, den Skalierungsprozess für die Ausführung von Jenkins-Slaves in der Kubernetes-Umgebung zu automatisieren.
Für Entwickler, die Docker Swarm verwenden, ermöglicht das Jenkins Self-Organizing Swarm Modules Plugin, Jenkins auf die gleiche Weise skalierbar zu machen. Sobald beide Versionen installiert sind, können Sie mit Ihrem Jenkins-Job weitermachen, ohne sich Gedanken über Skalierbarkeitsprobleme machen zu müssen.
7. Build Pipeline Plugin
Während die kontinuierliche Integration eine großartige Möglichkeit ist, Projekte zu entwickeln, bringt sie auch eine Reihe von Herausforderungen mit sich. Bei komplexen, vielschichtigen Projekten kann es eine ziemliche Herausforderung sein, den Überblick über alle Aspekte des Auftragsfortschritts, einschließlich der Qualitätssicherung, zu behalten.
Das Jenkins Build Pipeline Plugin ermöglicht es Projektmanagern, eine Kette von miteinander verbundenen Aufträgen zu erstellen, so dass sie einen viel klareren Überblick über alle Phasen der Projektpipeline erhalten können. Das Plugin ermöglicht es Managern zu entscheiden, welche Schritte automatisiert werden können oder manuelle Eingriffe erfordern. Dieses hervorragende Plugin ermöglicht es Entwicklern, die volle Kontrolle über ihre Projekte zu übernehmen, weshalb es von so vielen Software-Entwicklungsteams verwendet wird.
8. SCM Sync Configuration Plugin
Verlorene Konfigurationsdaten haben schon so manchen Projektmanager nachts wachgehalten. Die Behebung kostet nicht nur Zeit, sondern ist auch völlig vermeidbar. Genauso wie Code in Repositories gesichert werden kann, können mit Hilfe dieses praktischen Plugins auch Jenkins-Konfigurationsdateien gesichert werden.
Das SCM Sync Configuration Plugin ermöglicht die automatische Sicherung von Konfigurationsdateien in einem SCM-Repository. Und nicht nur das, dieses Plugin verfolgt auch alle Änderungen, so dass Manager einen klaren Überblick über alle Änderungen erhalten. Es ist ein beliebtes Jenkins-Backup-Tool, das jeder Jenkins-Entwickler in seinem Werkzeugkasten haben sollte.
9. Jenkins Maven-Plugin
Maven ist sehr beliebt, weil es ein einfach zu verwendendes Standard-Projekt-Build-Layout bietet. Dies hilft den Entwicklern, zu Beginn eines Projekts Zeit zu sparen, da sie direkt loslegen können und sich nicht um diesen Aspekt der Einarbeitung in das Projekt kümmern müssen.
Dieses Plugin ermöglicht es Jenkins, Maven-Builds zu überwachen, um eine automatische Archivierung von Berichten zu ermöglichen und bei parallelen oder inkrementellen Modul-Builds usw. zu helfen. Es ist einfach einzurichten und erfordert nicht viel an Jenkins-Konfiguration.
10 . Jenkins Subversion Plugin
Da eine große Anzahl von Entwicklern immer noch Apache Subversion verwendet, gab es einen überwältigenden Bedarf für ein Jenkins-Plugin, um die beiden zu integrieren. Dieses Plugin überwacht Änderungen und löst bei Bedarf neue Builds aus. Außerdem aktualisiert es automatisch den Arbeitsbereich, so dass er für den Start des neuen Builds bereit ist.