Vibeleaderboard
Index / tool
Visit www.jenkins.io
Category
Developer Tools
Rank
No. 2783Tools index

Previous survey · No. 2647 ·

Listed in
#6 Automate delivery
Pricing
Open Source
Type
TOOL
Use case
Deployment & Operations
Builder
jenkinsci
Latest release
jenkins-2.588
Date

About

Open-source automation server. The classic self-hosted CI/CD server. Free and open-source (MIT) with a huge plugin ecosystem — you run and maintain it on your own infrastructure.

What it does

Jenkins is a Java server that builds projects, runs tests, performs static analysis and deploys code on your behalf. You start it from a single Java web archive, a Docker image or a native package for Linux and Windows, then drive it from a browser, a command-line client or a scripted pipeline file kept in your repository. Most capability arrives as add-ons: the core team says many features belong in separately released extensions, and it tries to keep the core small in dependencies.

Why it's ranked here

The case rests on maturity and process rather than novelty. The project ships two release lines, a frequent one and a Long-Term Support line fed by bug-fix backports. Core changes usually need two reviewer approvals, and maintainers state that backward compatibility, including binary compatibility for plugins, is a standing goal. Its own pipeline builds on Linux and Windows against Java 21 and 25 and runs browser acceptance tests. That discipline is what a team wants from the server that gates every merge.

What's good

The command-line client talks to a running server over WebSocket by default, with plain HTTP and SSH as alternatives, and can read a user ID and API token from environment variables so scripts never put a password on the command line. The launcher refuses unsupported Java versions with a clear message that names the override. Sensitive startup options, such as a keystore password, can be passed on standard input instead of appearing in the process list. The whole core is MIT licensed.

Tradeoffs

This is a Java server you operate yourself: it needs Java 21 or 25, and anything else requires an explicit override. The core pulls in a long list of long-lived libraries, including Groovy, XStream and a Jelly-based view layer, which is a lot of surface to patch and upgrade. Much of the useful behavior lives in plugins with their own release cycles, so an install is only as healthy as its plugin set. The project pipeline file warns it may fail anywhere except the project CI, so read it as an example rather than a template.

How to use it well

Pick it when you need build automation on hardware you control, including Windows agents, and can budget someone to own upgrades. Track the Long-Term Support line on production servers and keep the frequent line for trying features. Keep the pipeline definition in the repository, script administration through the command-line client with API tokens, and be deliberate about each plugin you add, since each one ships on its own schedule. If you want a hosted service where someone else patches the server, look elsewhere.

Technical notes+

war/src/main/java/executable/Main.java is a thin launcher: it checks the Java feature version against SUPPORTED_JAVA_VERSIONS (21, 25), honours --enable-future-java or JENKINS_ENABLE_FUTURE_JAVA, reads arguments from stdin under --paramsFromStdIn (up to 131072 bytes), then delegates to Winstone. cli/src/main/java/hudson/cli/CLI.java defaults to Mode.WEB_SOCKET, accepts -http and -ssh, rejects the removed -remoting mode, and builds basic auth from JENKINS_USER_ID plus JENKINS_API_TOKEN. core/src/main/java/hudson/Main.java is a legacy external-job poster kept for compatibility, with a 15000 ms default socket timeout. pom.xml aggregates bom, websocket, core, war, test, cli and coverage modules. Jenkinsfile runs a Linux and Windows matrix on JDK 21 and 25 plus Firefox acceptance tests.

Observed

License
MIT (LICENSE.txt)
Language
Java, built with Maven
Distribution
WAR file, Docker images, native packages and installers for Linux and Windows
Supported Java
21 and 25; other versions need an explicit override flag
Interfaces
Web UI, CLI over WebSocket (default), HTTP or SSH, and pipeline scripts
Release channels
Two lines: a frequent release line and a Long-Term Support line with backports
Tests
Unit and functional tests in the repository, with light-test, smoke-test and all-tests profiles

Read from README.md, pom.xml, LICENSE.txt, CONTRIBUTING.md, core/pom.xml, core/src/main/java/hudson/Main.java, war/src/main/java/executable/Main.java, cli/src/main/java/hudson/cli/CLI.java, Jenkinsfile, docs/MAINTAINERS.adoc.

Tags

CI/CDJenkins

Tech Stack

Node.jsJava

Media

Jenkins

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.