Jenkins
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
- GitHub
- 26.7k stars
- 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
Tech Stack
Media

Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.