Jenkins

Jenkins

Copyright ┬ę Shutterstock / tahirduran

Was ist Jenkins?

Jenkins ist ein in Java geschriebener Open-Source Automatisierungsserver. Es hilft dabei, den nicht-menschlichen Teil zu automatisieren, wobei die kontinuierliche Integration und die technischen Aspekte der kontinuierlichen Bereitstellung erleichtert werden. Bei dem Server handelt es sich um ein serverbasiertes System, das in Servlet-Containern wie Apache Tomcat ausgef├╝hrt wird. Es unterst├╝tzt Versionskontrolle-Tools wie AccuRev, CVS, Subversion, Git, Mercurial, TD/OMS, Perforce, RTC und ClearCase und kann Apache Ant-, Apache Maven- und Sbt-basierte Projekte sowie beliebige Shellskripts und Windows-Stapelbefehle ausf├╝hren. Der Sch├Âpfer ist Kohsuke Kawaguchi. Unter MIT-Lizenz ver├Âffentlicht, ist Jenkins eine freie Software.

Builds (Entwicklungsstufe einer Software) k├Ânnen auf verschiedene Weise ausgel├Âst werden, z.B. durch Festschreiben in einem Versionskontrollsystem, durch Zeitplanung ├╝ber einen cron-├Ąhnlichen Mechanismus und durch Abfragen einer bestimmten Build-URL. Es kann auch ausgel├Âst werden, nachdem die anderen Builds in der Warteschlange abgeschlossen wurden. Die Funktionalit├Ąt kann mit Plugins erweitert werden.

Das Projekt dieser Software hie├č urspr├╝nglich Hudson und wurde nach einem Streit mit Oracle umbenannt. Sein Zweig Hudson wurde einige Zeit von Oracle weiterentwickelt, bevor er an die Eclipse Foundation gespendet wurde. Hudson wird nicht mehr gewartet und wurde im Februar 2017 als veraltet angek├╝ndigt.

Entwicklung

Jenkins wurde urspr├╝nglich als Hudson-Projekt entwickelt. Die Entwicklung von Hudson begann im Jahr 2004 bei Sun Microsystems. Es wurde erstmals im Februar 200 in Java.net ver├Âffentlicht. Um 2007 wurde Hudson als eine bessere Alternative zu CruiseControl und anderen Open-Source-Build-Servern bekannt. Bei der JavaOne-Konferenz im Mai 2008 gewann die Software den sog. Duke’s Choice Award in der Kategorie Developer Solutions.

Im Jahr 2010 kam es in der Hudson-Community zu einem Problem hinsichtlich der genutzten Infrastruktur, das immer mehr Fragen zur Verwaltung und Kontrolle von Oracle aufwarf. Es fanden Verhandlungen zwischen den wichtigsten Projektbeteiligten und Oracle statt und obwohl es viele Bereiche der Vereinbarung gab, war der Markenname “Hudson” ein entscheidender Knackpunkt, nachdem Oracle Ende 2010 das Recht auf den Namen beanspruchte und eine Marke beantragte. Dies f├╝hrte im Januar 2011 zu einem Aufruf zur Abstimmung, um den Projektnamen von “Hudson” zu ├Ąndern. Der Vorschlag wurde noch im selben Monat mit ├╝berw├Ąltigender Mehrheit von der Gemeinschaft gebilligt, wodurch das Projekt Jenkins geschaffen wurde.

Im Februar 2011 gab Oracle die Beabsichtigung an, die Entwicklung von Hudson fortzusetzen und erachtet Jenkins eher als Abzweigung anstatt einer Umbenennung. Jenkins und Hudson setzten daher weiterhin zwei unabh├Ąngige Projekte fort. Im Mai 2018 hatte die Jenkins-Organisation auf GitHub 650 Projektmitglieder und ungef├Ąhr 1.900 ├Âffentliche Repositorien – verglichen mit den 28 Projektmitgliedern von Hudson und 20 ├Âffentlichen Repositorien.

Plugins

F├╝r Jenkins wurden Plugins (Software-Komponente/-Erweiterung) ver├Âffentlicht, die seine Verwendung auf Projekte erweitern und die in anderen Sprachen als Java geschrieben sind. F├╝r die Integration in die meisten Versionskontrollsysteme und Fehlerdatenbanken stehen Plugins zur Verf├╝gung. Viele Build-Tools werden ├╝ber ihre jeweiligen Plugins unterst├╝tzt. Sie k├Ânnen auch das Aussehen von Jenkins ├Ąndern oder neue Funktionen hinzuf├╝gen. Es gibt eine Reihe von Plugins f├╝r Unit-Tests, die Testberichte in verschiedenen Formaten erstellen. Jenkins kann die Berichte anzeigen, Trends generieren und in der GUI (= Graphical User Interface; grafische Oberfl├Ąche) darstellen.

Mailer

Der Mailer erm├Âglicht das Konfigurieren von E-Mail-Benachrichtigungen f├╝r Build-Ergebnisse. Jenkins sendet E-Mails an die angegebenen Empf├Ąnger, wenn ein bestimmtes Ereignis eintritt, wie z.B.:

1. Fehlerhafter Build
2. Instabiler Build
3. Erfolgreicher Build nach einem fehlgeschlagenen Build, der anzeigt, dass eine Krise vorbei ist
4. Instabiler Build nach einem erfolgreichen Build, war auf eine Regression hinweist

Credentials (Zeugnisse)

Sie erlauben das Speichern von Anmeldeinformationen und stellen eine standardisierte API f├╝r andere Plugins bereit, um verschiedene Arten von Anmeldeinformationen zu speichern und abzurufen.

├ťberwachung externer Jobs

Die ├ťberwachung externer Jobs f├╝gt die M├Âglichkeit hinzu, das Ergebnis von extern ausgef├╝hrten Jobs zu ├╝berpr├╝fen.

SSH-Agenten

Dieses Plugin erm├Âglicht die Verwalten von Agenten (fr├╝her als “Slaves” bekannt), die auf den sog. *nix-Computern ├╝ber SSH laufen. Es wird eine neue Art der Agentenstartmethode hinzugef├╝gt.

1. ├ľffnen einer SSH-Verbindung zum angegebenen Host als angegebenen Benutzernamen.
2. ├ťberpr├╝fung der Standardversion von Java f├╝r diesen Benutzer.
3. Falls Standardversion mit Jenkins nicht kompatibel ist, eine andere Java-Version nutzen.
4. Bei Vorhandensein einer geeigneten Java-Version, die neueste Agent.jar ├╝ber SFTP kopieren.
5. Agentenprozess starten.

Javadoc

Dieses Plugin erweitert Jenkins um Javadoc-Unterst├╝tzung. Diese Funktion war fr├╝her Teil des Kerns, wurde jedoch seit Jenkins Version 1.431 in separate Plugins aufgeteilt.
Das Plugin erm├Âglicht die Auwahl von “Publish Javadoc” als Post-Build-Aktion, wobei das Verzeichnis angegeben wird, in dem der Javadoc gesammelt werden soll und ob f├╝r jeden erfolgreichen Build eine Aufbewahrung erwartet wird.

Sicherheit

Die Sicherheit h├Ąngt von zwei Faktoren ab: Zugangskontrolle und Schutz vor externen Bedrohungen. Die Zugriffskontrolle kann auf zwei Arten angepasst werden: Benutzerauthentifizierung und Autorisierung. Der Schutz vor externen Bedrohungen wie CSRF-Angriffen und sch├Ądlichen Builds wird ebenfalls unterst├╝tzt.


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte