Jenkins (software)
   HOME

TheInfoList



OR:

Jenkins is an
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
automation Automation describes a wide range of technologies that reduce human intervention in processes, namely by predetermining decision criteria, subprocess relationships, and related actions, as well as embodying those predeterminations in machines ...
server Server may refer to: Computing *Server (computing), a computer program or a device that provides functionality for other programs or devices, called clients Role * Waiting staff, those who work at a restaurant or a bar attending customers and su ...
. It helps automate the parts of
software development Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development invol ...
related to
building A building, or edifice, is an enclosed structure with a roof and walls standing more or less permanently in one place, such as a house or factory (although there's also portable buildings). Buildings come in a variety of sizes, shapes, and fun ...
,
testing An examination (exam or evaluation) or test is an educational assessment intended to measure a test-taker's knowledge, skill, aptitude, physical fitness, or classification in many other topics (e.g., beliefs). A test may be administered verba ...
, and deploying, facilitating continuous integration and
continuous delivery Continuous delivery (CD) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time and, following a pipeline through a "production-like environment", withou ...
. It is a server-based system that runs in
servlet container A web container (also known as a servlet container; and compare "webcontainer" ) is the component of a web server that interacts with Jakarta Servlets. A web container is responsible for managing the lifecycle of servlets, mapping a URL to a pa ...
s such as
Apache Tomcat Apache Tomcat (called "Tomcat" for short) is a free and open-source implementation of the Jakarta Servlet, Jakarta Expression Language, and WebSocket technologies. It provides a "pure Java" HTTP web server environment in which Java code can also ...
. It supports
version control In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections o ...
tools, including AccuRev, CVS,
Subversion Subversion () refers to a process by which the values and principles of a system in place are contradicted or reversed in an attempt to transform the established social order and its structures of power, authority, hierarchy, and social norms. Sub ...
,
Git Git () is a distributed version control system: tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data in ...
,
Mercurial Mercurial is a distributed revision control tool for software developers. It is supported on Microsoft Windows and Unix-like systems, such as FreeBSD, macOS, and Linux. Mercurial's major design goals include high performance and scalability, d ...
,
Perforce Perforce, legally Perforce Software, Inc., is an American developer of software used for developing and running applications, including version control software, web-based repository management, developer collaboration, application lifecycle mana ...
,
ClearCase Rational ClearCase is a family of computer software tools that supports software configuration management (SCM) of source code and other software development assets. It also supports design-data management of electronic design artifacts, thus enab ...
and RTC, and can execute
Apache Ant Apache Ant is a software tool for automating software build processes which originated from the Apache Tomcat project in early 2000 as a replacement for the Make build tool of Unix. It is similar to Make, but is implemented using the Java languag ...
,
Apache Maven 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 ...
and
sbt sbt is an open-source build tool for Scala (programming language), Scala and Java (programming language), Java projects, similar to Apache Software Foundation, Apache's Apache Maven, Maven and Gradle. Its main features are: *Native support fo ...
based projects as well as arbitrary
shell script A shell script is a computer program designed to be run by a Unix shell, a command-line interpreter. The various dialects of shell scripts are considered to be scripting languages. Typical operations performed by shell scripts include file manip ...
s and Windows batch commands.


History

The Jenkins project was originally named ''
Hudson Hudson may refer to: People * Hudson (given name) * Hudson (surname) * Henry Hudson, English explorer * Hudson (footballer, born 1986), Hudson Fernando Tobias de Carvalho, Brazilian football right-back * Hudson (footballer, born 1988), Hudso ...
'', and was renamed in 2011 after a dispute with
Oracle An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. As such, it is a form of divination. Description The word '' ...
, 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 The Eclipse Foundation AISBL is an independent, Europe-based not-for-profit corporation that acts as a steward of the Eclipse open source software development community, with legal jurisdiction in the European Union. It is an organization suppo ...
. Oracle's Hudson is no longer maintained and was announced as obsolete in February 2017. Around 2007 Hudson became known as a better alternative to
Cruise Control Cruise control (also known as speed control, cruise command, autocruise, or tempomat) is a system that automatically controls the speed of a motor vehicle. The system is a servomechanism that takes over the throttle of the car to maintain a ste ...
and other open-source build-servers. At the
JavaOne __NOTOC__ JavaOne is an annual conference first organized in 1996 by Sun Microsystems to discuss Java technologies, primarily among Java developers. It was held in San Francisco, California, typically running from a Monday to Thursday in summer ...
conference in May 2008 the software won the Duke's Choice Award in the Developer Solutions category. During November 2010, after the acquisition of
Sun Microsystems Sun Microsystems, Inc. (Sun for short) was an American technology company that sold computers, computer components, software, and information technology services and created the Java programming language, the Solaris operating system, ZFS, the ...
by
Oracle An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. As such, it is a form of divination. Description The word '' ...
, 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. Negotiations between the principal project contributors and Oracle took place, and although there were many areas of agreement a key sticking point was the
trademark A trademark (also written trade mark or trade-mark) is a type of intellectual property consisting of a recognizable sign, design, or expression that identifies products or services from a particular source and distinguishes them from others ...
ed 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 community vote on January 29, 2011, creating the Jenkins project. 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, each claiming the other was the fork. As of June 2019, the Jenkins organization on
GitHub GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continuous ...
had 667 project members and around 2,200 public repositories, compared with Hudson's 28 project members and 20 public repositories with the last update in 2016. In 2011, creator
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 Hudson project. He is also the recipient of the 2011 Google-O'Reilly Open Source A ...
received an
O'Reilly Open Source Award The O'Reilly Media, O'Reilly Open Source Award is presented to individuals for dedication, innovation, leadership and outstanding contribution to Open-source model, open source. From 2005 to 2009 the award was known as the Google–O'Reilly Media, ...
for his work on the Hudson/Jenkins project. On April 20, 2016, version 2 was released with the ''Pipeline'' plugin enabled by default. The plugin allows for writing build instructions using a domain specific language based on
Apache Groovy Apache Groovy is a Java-syntax-compatible object-oriented programming language for the Java platform. It is both a static and dynamic language with features similar to those of Python, Ruby, and Smalltalk. It can be used as both a programming lan ...
. Jenkins replaced Hudson since February 8, 2017 in Eclipse. In March 2018 Jenkins X software project for
Kubernetes Kubernetes (, commonly stylized as K8s) is an open-source container orchestration system for automating software deployment, scaling, and management. Google originally designed Kubernetes, but the Cloud Native Computing Foundation now maintains ...
was publicly presented, with support for different cloud providers including AWS EKS among others.


Builds

Builds can be triggered by various means, for example: * a webhook that gets triggered upon pushed commits in a version control system * scheduling via a
cron The cron command-line utility is a job scheduler on Unix-like operating systems. Users who set up and maintain software environments use cron to schedule jobs (commands or shell scripts), also known as cron jobs, to run periodically at fixed ti ...
-like mechanism * requesting a specific build URL. * after the other builds in the queue have completed * invoked by other builds


Plugins

Plugins have been released for Jenkins that extend its use to projects written in languages other than
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
. 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 JUnit is a unit testing framework for the Java programming language. JUnit has been important in the development of test-driven development, and is one of a family of unit testing frameworks which is collectively known as xUnit that originated ...
bundled with Jenkins, MSTest, NUnit, etc.) and
automated testing In software testing, test automation is the use of software separate from the software being tested to control the execution of tests and the comparison of actual outcomes with predicted outcomes. Test automation can automate some repetitive bu ...
that supports automated tests. Builds can generate test reports in various formats supported by plugins (
JUnit JUnit is a unit testing framework for the Java programming language. JUnit has been important in the development of test-driven development, and is one of a family of unit testing frameworks which is collectively known as xUnit that originated ...
support is currently bundled) and Jenkins can display the reports and generate trends and render them in the GUI.


Mailer

Allows configuring email notifications for build results. Jenkins will send emails to the specified recipients whenever a certain important event occurs, such as: # Failed build. # Unstable build. # Successful build after a failed build, indicating that a crisis is over # Unstable build after a successful one, indicating that there's a regression


Credentials

Allows storing credentials in Jenkins. Provides a standardized API for other plugins to store and retrieve different types of credentials.


Monitoring external jobs

Adds the ability to monitor the result of externally executed jobs.


SSH agents

This plugin allows managing agents (formerly known as slaves) running on *nix machines over SSH. It adds a new type of agent launch method. This launch method will # Open a SSH connection to the specified host as the specified username, # Check the default version of Java for that user, # ot implemented yetIf the default version is not compatible with Jenkins's , try to find a proper version of Java # Once it has a suitable version of Java, copy the latest via SFTP (falling back to scp if SFTP is not available), # Start the agent process.


Javadoc

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. 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.


Online explanation

Jenkins can be used to schedule and monitor the running of a shell script via user interface instead of command prompt.


Security

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 Cross-site request forgery, also known as one-click attack or session riding and abbreviated as CSRF (sometimes pronounced ''sea-surf'') or XSRF, is a type of malicious exploit of a website or web application where unauthorized commands are submitt ...
attacks and malicious builds is supported as well.


Awards and recognition

*
InfoWorld ''InfoWorld'' (abbreviated IW) is an information technology media business. Founded in 1978, it began as a monthly magazine. In 2007, it transitioned to a web-only publication. Its parent company today is International Data Group, and its siste ...
Bossie Award (Best of Open Source Software Award) in 2011. * Received Geek Choice Award in 2014.


See also

*
Comparison of continuous integration software This is a compendium of continuous integration software that supports a software engineering practice, continuous integration, in which developers' changes are immediately tested and reported when they are added to the mainline code base. The com ...


References


External links

* * * * * {{DEFAULTSORT:Jenkins (Software) 2011 software Build automation Compiling tools Continuous integration Free software programmed in Java (programming language) Java development tools Software using the MIT license