Original author(s) | Kohsuke Kawaguchi [1] |
---|---|
Initial release | 2 February 2011 [2] |
Stable release | |
Repository | |
Written in | Java |
Platform | Java 11, Java 17, Java 21 |
Type | Continuous delivery |
License | MIT License [4] [5] |
Website | www |
Jenkins is an open source automation server. It helps automate the parts of software development related to building, testing, and deploying, facilitating continuous integration, and continuous delivery. It is a server-based system that runs in servlet containers such as Apache Tomcat, or by default as a stand-alone web-application in co-bundled Eclipse Jetty. It supports version control tools, including AccuRev, CVS, Subversion, Git, Mercurial, Perforce, ClearCase, and RTC, and can execute Apache Ant, Apache Maven, and sbt based projects as well as arbitrary shell scripts and Windows batch commands.
The Jenkins project was originally named Hudson , and was renamed in 2011 after a dispute with Oracle, which had forked the project and claimed rights to the project name. The Oracle fork, Hudson, continued to be developed for a time before being donated to the Eclipse Foundation. Oracle's Hudson is no longer maintained [6] [7] and was announced as obsolete in February 2017. [8]
Around 2007 Hudson became known as a better alternative to Cruise Control and other open-source build-servers. [1] [9] At the JavaOne conference in May 2008 the software won the Duke's Choice Award in the Developer Solutions category. [10]
During November 2010, after the acquisition of Sun Microsystems by Oracle, an issue arose in the Hudson community with respect to the infrastructure used, which grew to encompass questions over the stewardship and control by Oracle. [11] Negotiations between the principal project contributors and Oracle took place, and although there were many areas of agreement a key sticking point was the trademarked name "Hudson," after Oracle claimed the right to the name and applied for a trademark in December 2010. As a result, on January 11, 2011, a call for votes was made to change the project name from "Hudson" to "Jenkins." The proposal was overwhelmingly approved by a community vote on January 29, 2011, creating the Jenkins project. [12]
On February 1, 2011, Oracle said that they intended to continue development of Hudson, and considered Jenkins a fork rather than a rename. Jenkins and Hudson therefore continued as two independent projects, [13] each claiming the other was the fork. As of June 2019, the Jenkins organization on GitHub had 667 project members and around 2,200 public repositories, [14] compared with Hudson's 28 project members and 20 public repositories with the last update in 2016. [15]
In 2011, creator Kohsuke Kawaguchi received an O'Reilly Open Source Award for his work on the Hudson/Jenkins project. [16]
On April 20, 2016, version 2 was released with the Pipeline plugin enabled by default. [17] The plugin allows for writing build instructions using a domain specific language based on Apache Groovy.
Jenkins replaced Hudson since February 8, 2017 in Eclipse. [8]
In March 2018 Jenkins X software project for Kubernetes was publicly presented, [18] with support for different cloud providers including AWS EKS among others. [19]
Builds can be triggered by various means, for example:
Plugins have been released for Jenkins that extend its use to projects written in languages other than Java. Plugins are available for integrating Jenkins with most version control systems and bug databases. Many build tools are supported via their respective plugins. Plugins can also change the way Jenkins looks or add new functionality. There are a set of plugins dedicated for the purpose of unit testing that generate test reports in various formats (for example, JUnit bundled with Jenkins, MSTest, NUnit, etc. [20] ) and automated testing that supports automated tests. Builds can generate test reports in various formats supported by plugins (JUnit support is currently bundled) and Jenkins can display the reports and generate trends and render them in the GUI.
Allows configuring email notifications for build results. [21] Jenkins will send emails to the specified recipients whenever a certain important event occurs, such as:
Allows storing credentials in Jenkins. Provides a standardized API for other plugins to store and retrieve different types of credentials. [22]
Adds the ability to monitor the result of externally executed jobs. [23]
This plugin allows managing agents (formerly known as slaves) [24] running on *nix machines over SSH. [25] It adds a new type of agent launch method. This launch method will
This plugin adds Javadoc support to Jenkins. This functionality used to be a part of the core, but as of Jenkins 1.431, it was split off into separate plugins. [26]
The plugin enables the selection of "Publish Javadoc" as a post-build action, specifying the directory where the Javadoc is to be gathered and if retention is expected for each successful build. [27]
Jenkins can be used to schedule and monitor the running of a shell script via user interface instead of command prompt.
Jenkins' security depends on two factors: access control and protection from external threats. Access control can be customized via two ways: user authentication and authorization. Protection from external threats such as CSRF attacks and malicious builds is supported as well. [28]
Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. It is the second-most-popular IDE for Java development, and, until 2016, was the most popular. Eclipse is written mostly in Java and its primary use is for developing Java applications, but it may also be used to develop applications in other programming languages via plug-ins, including Ada, ABAP, C, C++, C#, Clojure, COBOL, D, Erlang, Fortran, Groovy, Haskell, HLASM, JavaScript, Julia, Lasso, Lua, NATURAL, Perl, PHP, PL/I, Prolog, Python, R, Rexx, Ruby, Rust, Scala, and Scheme. It can also be used to develop documents with LaTeX and packages for the software Mathematica. Development environments include the Eclipse Java development tools (JDT) for Java and Scala, Eclipse CDT for C/C++, and Eclipse PDT for PHP, among others.
IntelliJ IDEA is an integrated development environment (IDE) written in Java for developing computer software written in Java, Kotlin, Groovy, and other JVM-based languages. It is developed by JetBrains and is available as an Apache 2 Licensed community edition, and in a proprietary commercial edition. Both can be used for commercial development.
NASA WorldWind is an open-source virtual globe. According to the website, "WorldWind is an open source virtual globe API. WorldWind allows developers to quickly and easily create interactive visualizations of 3D globe, map and geographical information. Organizations around the world use WorldWind to monitor weather patterns, visualize cities and terrain, track vehicle movement, analyze geospatial data and educate humanity about the Earth." It was first developed by NASA in 2003 for use on personal computers and then further developed in concert with the open source community since 2004. As of 2017, a web-based version of WorldWind is available online. An Android version is also available.
Maven is a build automation tool used primarily for Java projects. Maven can also be used to build and manage projects written in C#, Ruby, Scala, and other languages. The Maven project is hosted by The Apache Software Foundation, where it was formerly part of the Jakarta Project.
GlassFish is an open-source Jakarta EE platform application server project started by Sun Microsystems, then sponsored by Oracle Corporation, and now living at the Eclipse Foundation and supported by OmniFish, Fujitsu and Payara. The supported version under Oracle was called Oracle GlassFish Server. GlassFish is free software and was initially dual-licensed under two free software licences: the Common Development and Distribution License (CDDL) and the GNU General Public License (GPL) with the Classpath exception. After having been transferred to Eclipse, GlassFish remained dual-licensed, but the CDDL license was replaced by the Eclipse Public License (EPL).
Aptana, Inc. is a company that makes web application development tools for use with a variety of programming languages. Aptana's main products include Aptana Studio, Aptana Cloud and Aptana Jaxer.
The following tables list notable software packages that are nominal IDEs; standalone tools such as source-code editors and GUI builders are not included. These IDEs are listed in alphabetic order of the supported language.
Hudson is a discontinued continuous integration (CI) tool written in Java, which runs in a servlet container such as Apache Tomcat or the GlassFish application server. It supports SCM tools including CVS, Subversion, Git, Perforce, Clearcase and RTC, and can execute Apache Ant and Apache Maven based projects, as well as arbitrary shell scripts and Windows batch commands. The primary developer of Hudson was Kohsuke Kawaguchi, who worked for Sun Microsystems at the time. Released under the MIT License, Hudson is free software.
JSDoc is a markup language used to annotate JavaScript source code files. Using comments containing JSDoc, programmers can add documentation describing the application programming interface of the code they're creating. This is then processed, by various tools, to produce documentation in accessible formats like HTML and Rich Text Format. The JSDoc specification is released under CC BY-SA 3.0, while its companion documentation generator and parser library is free software under the Apache License 2.0.
Checkstyle is a static code analysis tool used in software development for checking if Java source code is compliant with specified coding rules.
This is a compendium of software tools that support continuous integration.
The acquisition of Sun Microsystems by Oracle Corporation was completed on January 27, 2010. After the acquisition was completed, Oracle, only a software vendor prior to the merger, owned Sun's hardware product lines, such as SPARC Enterprise, as well as Sun's software product lines, including the Java programming language.
Java code coverage tools are of two types: first, tools that add statements to the Java source code and require its recompilation. Second, tools that instrument the bytecode, either before or during execution. The goal is to find out which parts of the code are tested by registering the lines of code executed when running a test.
iDempiere. Community Powered Enterprise, also known as OSGi + ADempiere, is an open source Enterprise Resource Planning (ERP) software that is fully navigable on PCs, tablets and smartphones, it also has customer relationship management (CRM) and supply chain management (SCM) functions. It is in contrast to proprietary or most other open source ERP solutions driven only by a community of supporters.
Apache Mesos is an open-source project to manage computer clusters. It was developed at the University of California, Berkeley.
Kohsuke Kawaguchi is a computer programmer who is best known as the creator of the Jenkins software project. While working at Sun Microsystems, he was the primary developer of the Hudson project. He is also the recipient of the 2011 O'Reilly Open Source Award for his work on the Jenkins project.
DBeaver is a SQL client software application and a database administration tool. For relational databases it uses the JDBC application programming interface (API) to interact with databases via a JDBC driver. For other databases (NoSQL) it uses proprietary database drivers. It provides an editor that supports code completion and syntax highlighting. It provides a plug-in architecture that allows users to modify much of the application's behavior to provide database-specific functionality or features that are database-independent. It is written in Java and based on the Eclipse platform.
jenkinsci/jenkins
(source code repository). GitHub (published 2011-09-11). 2008-02-12. Archived from the original on 2016-10-18. Retrieved 2016-10-18.