Jenkins (software)
![]() | |
![]() | |
Originalautor (en) | Kohsuke Kawaguchi[1] |
---|---|
Erstveröffentlichung | 2. Februar 2011[2] |
Stabile Version | 2.337[3] ![]() |
Repository | |
Geschrieben in | Java |
Plattform | Java 8, Java 11 |
Typ | Kontinuierliche Lieferung |
Lizenz | MIT -Lizenz[4][5] |
Webseite | www![]() |
Jenkins ist ein Open Source Automatisierungsserver. Es hilft, die Teile von zu automatisieren Software-Entwicklung im Zusammenhang mit Gebäude, testen, und Bereitstellung, erleichtert kontinuierliche Integration und kontinuierliche Lieferung. Es ist ein serverbasiertes System, das in Servlet Container wie zum Beispiel Apache tomcat. Es unterstützt Versionskontrolle Werkzeuge, einschließlich ACCUREV, Lebenslauf, Subversion, Git, Quecksilber, Perforce, Klarer Fall und RTCund kann ausführen Apache Ant, Apache Maven und SBT sowohl Projekte als auch willkürlicher Projekte Shell -Skripte und Fenster Batch -Befehle
Geschichte
Das Jenkins -Projekt wurde ursprünglich benannt Hudsonund wurde 2011 nach einem Streit mit dem Streit umbenannt Orakel, welcher hatte gegabelt Das Projekt und beanspruchte Rechte an den Projektnamen. Die Oracle Fork, Hudson, wurde weiterhin für einige Zeit entwickelt, bevor er an die gespendet wurde Eclipse Foundation. Oracas Hudson ist nicht mehr aufrechterhalten[6][7] und wurde im Februar 2017 als veraltet angekündigt.[8]
Um 2007 wurde Hudson als bessere Alternative zu bekannt Tempomat und andere Open-Source-Build-Server.[1][9] Bei der Javaone Konferenz im Mai 2008 Die Software gewann den Duke's Choice Award in der Kategorie Developer Solutions.[10]
Im November 2010 nach dem Übernahme von Sun Microsystems durch OrakelIn der Hudson -Community trat ein Problem in Bezug auf die verwendete Infrastruktur auf, die von Oracle Fragen über die Verantwortung und Kontrolle umfasste.[11] Verhandlungen zwischen den Hauptprojekt -Mitwirkenden und Oracle fanden statt, und obwohl es viele Vereinbarungsbereiche gab Markenzeichen Name "Hudson", nachdem Oracle das Recht auf den Namen beantragt und im Dezember 2010 eine Marke beantragte . " Der Vorschlag wurde am 29. Januar 2011 von der Community Voting überwiegend genehmigt und das Jenkins -Projekt geschaffen.[12]
Am 1. Februar 2011 sagte Oracle, dass sie beabsichtigten, die Entwicklung von Hudson fortzusetzen, und betrachtete Jenkins eher als eine Umbenennung. Jenkins und Hudson setzten sich daher als zwei unabhängige Projekte fort,[13] Jeder behauptet, der andere ist die Gabel. Ab Juni 2019 die Jenkins -Organisation auf GitHub hatte 667 Projektmitglieder und rund 2.200 öffentliche Repositories,[14] Im Vergleich zu Hudsons 28 Projektmitgliedern und 20 öffentlichen Repositories mit dem letzten Update im Jahr 2016.[15]
Im Jahr 2011 Schöpfer Kohsuke Kawaguchi erhielt eine O'Reilly Open Source Award für seine Arbeit am Hudson/Jenkins -Projekt.[16]
Am 20. April 2016 wurde Version 2 mit dem veröffentlicht Pipeline standardmäßig aktiviertes Plugin aktiviert.[17] Das Plugin ermöglicht das Schreiben von Build -Anweisungen mithilfe einer domänenspezifischen Sprache basierend auf Apache Groovy.
Jenkins ersetzte Hudson seit dem 8. Februar 2017 in Eclipse.[8]
Im März 2018 Jenkins X Software -Projekt für Kubernetes wurde öffentlich präsentiert,[18] Mit Unterstützung verschiedener Cloud -Anbieter, einschließlich AWS EKS unter anderem.[19]
Baut
Baut kann beispielsweise mit verschiedenen Mitteln ausgelöst werden:
- Ein Webhook, der beim Schieben ausgelöst wird sich verpflichtet in einem Versionskontrollsystem
- Planen über a Cron-ähnlichen Mechanismus
- Anfordern eines bestimmten Builds URL.
- Nachdem die anderen Builds in der Warteschlange abgeschlossen sind
- von anderen Builds aufgerufen
Plugins
Plugins wurden für Jenkins veröffentlicht, die seine Verwendung auf Projekte in anderen Sprachen als in anderen als Java. Plugins sind zur Integration von Jenkins in die meisten Versionensteuerungssysteme und Fehlerdatenbanken verfügbar. Viele Build -Tools werden über ihre jeweiligen Plugins unterstützt. Plugins können auch die Art und Weise ändern, wie Jenkins aussieht oder neue Funktionen hinzufügen. Es gibt eine Reihe von Plugins, die zum Zweck von Unit -Tests gewidmet sind, die Testberichte in verschiedenen Formaten generieren (z. B., Jung mit Jenkins, MSTEST, gebündelt, NUNIT, etc.[20]) und automatisierte Tests Das unterstützt automatisierte Tests. Builds können Testberichte in verschiedenen von Plugins unterstützten Formaten generieren (von Plugins (Jung Die Unterstützung wird derzeit gebündelt) und Jenkins kann die Berichte anzeigen und Trends erzeugen und in der GUI rendern.
Mailer
Ermöglicht das Konfigurieren von E -Mail -Benachrichtigungen für Erstellungsergebnisse.[21] Jenkins sendet E -Mails an die angegebenen Empfänger, wenn ein bestimmtes wichtiges Ereignis auftritt, z. B.:
- Fehlgeschlagener Build.
- Instabiler Build.
- Erfolgreicher Build nach einem gescheiterten Build, was darauf hinweist, dass eine Krise vorbei ist
- Instabiler Build nach einem erfolgreichen, was darauf hinweist, dass es eine Regression gibt
Referenzen
Ermöglicht das Speichern von Anmeldeinformationen in Jenkins. Bietet eine standardisierte API für andere Plugins zum Speichern und Abrufen verschiedener Arten von Anmeldeinformationen.[22]
Überwachung externer Jobs
Fügt die Möglichkeit hinzu, das Ergebnis extern ausgeführter Jobs zu überwachen.[23]
SSH -Agenten
Dieses Plugin ermöglicht Managementagenten (früher als Sklaven bekannt)[24] Laufen auf *Nix -Maschinen über SSH.[25] Es fügt eine neue Art von Agentenstartmethode hinzu. Diese Startmethode wird
- Öffnen Sie eine SSH -Verbindung zum angegebenen Host als angegebener Benutzername.
- Überprüfen Sie die Standardversion von Java für diesen Benutzer.
- [Noch nicht implementiert] Wenn die Standardversion nicht mit den von Jenkins kompatibel ist Agent.JarVersuchen Sie, eine richtige Version von Java zu finden
- Sobald es eine geeignete Version von Java hat, kopieren Sie die neuesten Agent.Jar via SFTP (zurück auf SCP fallen, wenn SFTP nicht verfügbar ist),
- Starten Sie den Agentenprozess.
Javadoc
Dieses Plugin fügt Jenkins Javadoc -Unterstützung hinzu. Diese Funktionalität war früher Teil des Kerns, wurde jedoch ab Jenkins 1.431 in separate Plugins aufgeteilt.[26]
Das Plugin ermöglicht die Auswahl von "Javadoc veröffentlichen" als Post-Build-Aktion, in dem das Verzeichnis angegeben wird, in dem der Javadoc gesammelt werden soll und wenn die Aufbewahrung für jeden erfolgreichen Build erwartet wird.[27]
Online -Erklärung
Jenkins kann verwendet werden, um das Ausführen eines Shell -Skripts über die Benutzeroberfläche anstelle der Eingabeaufforderung zu planen und zu überwachen.
Sicherheit
Die Sicherheit von Jenkins hängt von zwei Faktoren ab: Zugangskontrolle und Schutz vor externen Bedrohungen. Die Zugriffskontrolle kann auf zwei Arten angepasst werden: Benutzerauthentifizierung und Autorisierung. Schutz vor externen Bedrohungen wie z. CSRF Angriffe und böswillige Builds werden ebenfalls unterstützt.[28]
Auszeichnungen und Anerkennung
- InfoWorld Bossie Award (Best of Open Source Software Award) im Jahr 2011.[29]
- Erhielt Geek Choice Award im Jahr 2014.[29]
Siehe auch
Verweise
- ^ a b Dan Dyer. "Warum benutzt du Hudson immer noch nicht?". Abgerufen 2008-05-21.
- ^ Jenkins 1.396 veröffentlicht, Die erste Veröffentlichung von Jenkins ist veröffentlicht, Kohsuke Kawaguchi
- ^ https://github.com/jenkinsci/Jenkins/releass/tag/jenkins-2.337; Veröffentlichungsdatum: 1. März 2022; Abgerufen: 4. März 2022.
- ^ "Lizenz.TXT".
Jenkinsci/Jenkins
(Quellcode -Repository). Github (veröffentlicht 2011-09-11). 2008-02-12. Archiviert vom Original am 2016-10-18. Abgerufen 2016-10-18. - ^ Kawaguchi, Kohsuke; et al. "Verwenden Sie Hudson: Lizenz". Archiviert von das Original am 7. Februar 2009. Abgerufen 30. Januar, 2011.
- ^ "Über Jenkins". Eclipse Wiki: Jenkins. Abgerufen 6. August 2017.
- ^ "Über Jenkins". Wayback -Maschine: Eclipse Wiki, erstmals am 6. August 2017 erhältlich. Archiviert von das Original am 4. September 2018. Abgerufen 3. September 2018.
- ^ a b "Über Jenkins". Eclipse Wiki Geschichte.
- ^ Jeffrey Fredrick. [Nutzername]. "Was ist der Unterschied zwischen Hudson und CruiseControl für Java -Projekte?". Paketüberfluss. Abgerufen 17. Januar, 2011.
{{}}
:|author=
hat generischen Namen (Hilfe) - ^ Duboscq, Geneviève (2008). "2008 Javaone Conference: Duke's Choice Awards -Gewinner für 2008". 2008 Java One Conference. java.sun.com. Abgerufen 21. Mai, 2008.
- ^ Rodrigues, Savio (3. Dezember 2010). "Open Source -Mehltritte von Oracle setzen mit dem Hudson -Projekt fort". InfoWorld. Abgerufen 31. Mai, 2018.
- ^ ProfFitt, Brian (2. Februar 2011). "Hudson Devs stimmen für den Namen Änderung; Oracle erklärt Gabel". Itworld. Abgerufen 31. Mai, 2018.
- ^ Krill, Paul (4. Mai 2011). "Oracle gibt Hudson in Eclipse, aber Jenkins Fork scheint dauerhaft zu sein.". InfoWorld. Abgerufen 31. Mai, 2018.
- ^ "Jenkins Organisation auf Github". GitHub. Abgerufen 31. Mai, 2018.
- ^ "Hudson -Organisation auf Github". GitHub. Abgerufen 31. Mai, 2018.
- ^ Morris, Richard (17. Juli 2012). "Kohsuke Kawaguchi: Geek der Woche". Abgerufen 31. Mai, 2018.
- ^ "Was ist neu in Jenkins 2.0". 24. August 2016.
- ^ "Einführung von Jenkins X: Eine CI/CD -Lösung für moderne Cloud -Anwendungen auf Kubernetes". Einführung von Jenkins X: Eine CI/CD -Lösung für moderne Cloud -Anwendungen auf Kubernetes.
- ^ "Kontinuierliche Lieferung mit Amazon Eks und Jenkins X". Amazon Web Services. 7. November 2018.
- ^ "Plugins". Wiki.Jenkins-ci.org.
- ^ "Mailer - Jenkins - Jenkins Wiki". Wiki.Jenkins.io. Abgerufen 26. November, 2017.
- ^ "Anmeldeinformationen Plugin - Jenkins - Jenkins Wiki". Wiki.Jenkins-ci.org. Abgerufen 26. November, 2017.
- ^ "Überwachung externer Jobs - Jenkins - Jenkins Wiki". Wiki.Jenkins.io. Abgerufen 26. November, 2017.
- ^ "Jenkins Quellcode". GitHub. Abgerufen 2018-05-19.
- ^ "SSH Build Agent - Jenkins Plugin". Plugins.Jenkins.io. Abgerufen 12. Juni, 2020.
- ^ "Javadoc Plugin - Jenkins - Jenkins Wiki". Wiki.Jenkins.io. Abgerufen 26. November, 2017.
- ^ "Generieren und veröffentlichen EDOC in Jenkins mit Javadoc -Plugin | Erlanger".
- ^ "Jenkins sichern". Jenkins.io. Abgerufen 2016-09-13.
- ^ a b "Auszeichnungen - Jenkins - Jenkins Wiki". Wiki.Jenkins-ci.org. Abgerufen 2016-09-13.
Externe Links
- Offizielle Website
- Moser, Manfred; O'Brien, Tim (2011-11-25). Hudson Free Book (PDF). Oracle, Inc. archiviert aus das Original (PDF) Am 2012-10-17.
- Kohsuke Kawaguchi (2011-02-08). "Jenkins -Schöpfer Kohsuke Kawaguchi im Changelog -Podcast spricht über den Projektursprung und den Namensänderung". der Changelog. Abgerufen 2016-03-03.
- Kohsuke Kawaguchi (2015-02-15). "7 Möglichkeiten zur Optimierung von Jenkins/Hudson (von seinem Gründer)" (PDF). Wolkenbienen. Archiviert von das Original (PDF) Am 2011-10-27. Abgerufen 2016-03-03.
- Assaf Lavie (2017-03-01). "Bauen von Docker mit Jenkins". Cloudshare.com.