Introduction
Before GitHub Actions (the batch 13 post) and GitLab CI (the batch 23 post) made pipelines a checkbox, there was Jenkins: an open-source automation server, released in 2011, that has run builds, tests, and deployments for a generation of teams. It is older, rougher around the edges, and still everywhere β especially in enterprises with strict security rules or unusual build environments. Understanding Jenkins explains the CI/CD idea in its purest form: a server that watches your code and runs jobs for you.
Pipelines as code, agents, and plugins
Jenkins organises automation around three ideas:
Jobs and pipelines β a pipeline is a sequence of stages (build, test, deploy) defined in a Jenkinsfile stored in the repo, so the pipeline versions with the code, like GitLab's .gitlab-ci.yml .
Agents β the work runs on agents (build machines), which can be local, cloud, or Docker containers, so one Jenkins controller orchestrates many environments.
Plugins β over a thousand plugins connect Jenkins toβ¦