Jenkins
The self-hosted automation server much of CI started on: a Java controller that hands jobs to agents, more than 2,300 plugins, and pipelines written as a Jenkinsfile.
- What it is
- CI/CD pipelines
- Type
- Open source
- Foundation
- Continuous Delivery Foundation, graduated, joined March 2019. Part of the Linux Foundation
- License
- MIT
- Facts checked
- 28 October 2026
What it is
Jenkins is a Java web application you run yourself. The controller serves the web UI, schedules work and keeps everything as files under $JENKINS_HOME: its configuration, the job definitions, every build record and the plugins. Builds run on agents, other machines or containers connected to the controller. The docs advise against running builds on the controller’s own built-in node, because a build there has the same access to the controller’s files as Jenkins itself. Nearly everything beyond scheduling comes from plugins, for source control, credentials, cloud agents, test reports and notifications; the plugin index lists more than 2,300.
Since Jenkins 2.0 in April 2016, the usual way to describe a build is Pipeline: a Jenkinsfile committed to the repository, written in a Groovy-based syntax, either the stricter Declarative form or the free-form Scripted one. It splits the work into stages of steps such as sh 'make', can build every branch and pull request, and survives restarts of the controller. The Configuration as Code plugin does the same for the controller, setting it up from a YAML file instead of the web UI. Jenkins ships weekly releases and long-term support (LTS) lines; the latest LTS, 2.580.2, came out on October 28, 2026 and needs Java 21 or 25. It was a founding project of the Continuous Delivery Foundation in 2019 and its first to graduate, in August 2020.
Why teams pick it
- Runs on your own hardware, under the MIT licence, with no per-minute billing or vendor service in the path
- A plugin for almost any tool, cloud or version control system, so it fits into whatever a company already runs
- Pipelines live in a
Jenkinsfilenext to the code, are reviewed like code, and keep running across controller restarts - Two decades of production use and neutral governance at the Continuous Delivery Foundation
Watch out for
- You run it: the controller’s state is a directory of files to back up, and core and plugins need regular updates
- Plugins are most of the attack surface: seven of the ten security advisories Jenkins published in 2026 up to October 28 involved plugins
- Pipeline Groovy always runs on the controller, using its CPU and memory; the docs say to keep logic in
shsteps that run on agents - Upgrades follow Java: since 2.555.1 Jenkins needs Java 21 or 25, and the last LTS line to support Java 17 ended in March 2026
Alternatives
What all ci/cd pipelines have in common →Compare side by side →How it fits with other technologies
A declarative Jenkinsfile that builds, tests and deploys only from main · text
pipeline {
agent { label 'linux' } // run on an agent, not the controller
options { timeout(time: 30, unit: 'MINUTES') }
stages {
stage('Build') {
steps { sh './gradlew assemble' }
}
stage('Test') {
steps { sh './gradlew test' }
post { always { junit 'build/test-results/**/*.xml' } }
}
stage('Deploy') {
when { branch 'main' }
steps { sh './deploy.sh' }
}
}
}See it in a real stack
No architecture uses Jenkins yet. Drop it into the playground and wire it up yourself.Open playground →Where it came from2004–2026
Kohsuke Kawaguchi, an engineer at Sun Microsystems, started Hudson in the summer of 2004 and released it in February 2005. It built and tested projects on every change, and its plugin system let other developers add support for their own tools.
After Oracle bought Sun in 2010, the community and Oracle disagreed over the project’s infrastructure and its name, which Oracle had applied to register as a trademark. In January 2011 Andrew Bayer wrote that without a binding guarantee the project would be “living under a sword of Damocles”, and the community voted to rename it Jenkins, with Kawaguchi registering the new trademark to hand to a non-profit. Oracle kept developing Hudson, gave it to the Eclipse Foundation at the end of 2012, and it was declared obsolete in 2017.
Jenkins 2.0, announced on April 26, 2016, put Pipeline as code at the centre: build definitions moved from forms in the web UI into a Jenkinsfile in the repository. In 2019 Jenkins became one of four founding projects of the Continuous Delivery Foundation, and in August 2020 its first graduated project. It has kept its weekly and LTS release lines since, moving to Java 21 as the minimum in 2026.
Why it’s built this way
- A small core and everything else as plugins
- Every team used a different mix of version control, build tools and test reports. Plugins let the community add support for each without changing the core, and the index has grown past 2,300.
- A controller that hands builds to agents
- Spreading builds over many machines adds capacity and lets each build run on the operating system it needs; it also keeps untrusted build scripts away from the controller’s files.
- Rename rather than live with Oracle’s trademark
- Oracle could withdraw the right to use “Hudson” at any time, so the community chose a new name it controlled instead.
- Pipelines as code in a Groovy-based language
- Jobs configured by clicking couldn’t be versioned or reviewed. A
Jenkinsfilechecked in with the source is versioned with it, and a Groovy-based language keeps complex pipelines manageable.
Timeline
- 2004
Kohsuke Kawaguchi starts Hudson at Sun Microsystems
- 2005
First Hudson release in February
- 2011
The community renames the project Jenkins in January
- 2016
Jenkins 2.0 makes Pipeline as code the default in April
- 2019
Founding project of the Continuous Delivery Foundation in March
- 2020
First CDF project to graduate, in August
- 2026
Java 17 support ends; LTS 2.580.2 released on October 28
- Wikipedia: Hudson (software)
- Wikipedia: Kohsuke Kawaguchi
- Jenkins blog: Hudson’s future (Andrew Bayer, January 11, 2011)
- InfoQ: Hudson community votes to rename to Jenkins (January 2011)
- Jenkins blog: Jenkins 2.0 proposal, pipeline as code front and center (October 2015)
- Jenkins blog: Jenkins 2.0 is here! (April 26, 2016)
- Linux Foundation: The Linux Foundation announces new foundation to support continuous delivery collaboration (March 12, 2019)
- Jenkins blog: Jenkins graduates in the Continuous Delivery Foundation (August 4, 2020)
- Jenkins docs: Java support policy
Sources14 · facts checked 28 October 2026
- Jenkins docs: Pipeline (Jenkinsfile, Declarative and Scripted, durability)
- Jenkins docs: Pipeline best practices (Groovy always runs on the controller)
- Jenkins docs: Controller isolation (don’t run builds on the built-in node)
- Jenkins docs: Backing up and restoring Jenkins ($JENKINS_HOME contents)
- Jenkins plugins index (2,300+ community plugins)
- Jenkins plugins: Kubernetes plugin (agents as pods)
- Jenkins docs: Using Docker with Pipeline
- Jenkins: Configuration as Code
- Jenkins: LTS changelog (2.580.2, October 28, 2026; Java 21 or 25 required since 2.555.1)
- Jenkins docs: Java support policy (Java 21 and 25; Java 17 ended with 2.541.3, March 2026)
- Jenkins security advisories
- Jenkins LICENSE (MIT)
- CDF landscape data, landscape.yml (Jenkins graduated)
- Jenkins blog: Jenkins graduates in the Continuous Delivery Foundation (August 4, 2020)