Jenkins
Jenkins is a long-established, self-hosted, open-source automation server for building CI/CD pipelines, distinguished from newer cloud-native tools by its enormous plugin ecosystem (1,800+ plugins) covering virtually every build tool, source control system, cloud provider, and notification channel in existence. Pipelines are defined either through the classic freestyle job UI or, more commonly today, as code via a `Jenkinsfile` written in Groovy-based declarative or scripted pipeline syntax, checked into the repository alongside the application code.
Because Jenkins is self-hosted (run on a VM, bare metal, or Kubernetes via the Jenkins Kubernetes plugin), there are no per-minute usage costs the way there are with hosted CI services โ the only cost is the compute Jenkins itself runs on plus whatever build agents are attached. This makes it a common choice for teams with existing infrastructure who want predictable, non-recurring costs rather than a usage-based CI bill, and it remains the default in many enterprise and regulated environments where CI infrastructure must stay inside a private network.
The tradeoff is operational: Jenkins requires someone to own patching, plugin compatibility, and scaling of build agents, which is meaningfully more maintenance burden than a managed CI service like GitHub Actions or GitLab CI/CD. For Nigerian teams with existing server infrastructure and engineering capacity to maintain it, Jenkins offers effectively unlimited build capacity for the cost of the underlying hardware; teams without that capacity are usually better served by a hosted alternative.