Jenkins
The leading automation server for CI/CD. Pipeline as code, plugins ecosystem, distributed builds, and multibranch pipelines.
Pipeline as Code
Jenkinsfile defines the entire CI/CD pipeline in your repository. Stored alongside code, versioned, and reviewed via PRs.
- Declarative: Structured
pipelinesyntax - Scripted: Groovy-based with full programmatic control
- Shared Libraries: Reusable pipeline code across repos
- Multibranch: Auto-discovers branches, creates pipelines
Multibranch Pipeline
Jenkinsfile Example
pipeline {
agent any
stages {
stage('Checkout') {
steps {
checkout scmGit(
branches: [[name: '*/main']],
userRemoteConfigs: [[url: 'https://github.com/org/repo.git']]
)
}
}
stage('Build') {
steps {
sh 'npm ci'
sh 'npm run build'
}
}
stage('Test') {
steps {
sh 'npm test'
}
post {
always {
junit 'reports/**/*.xml'
}
}
}
stage('Deploy') {
when {
branch 'main'
}
steps {
sh './deploy.sh'
}
}
}
post {
success {
echo 'Pipeline completed successfully!'
}
failure {
echo 'Pipeline failed!'
}
}
}Plugins
Git integration for SCM checkout
Pipeline as code with Jenkinsfile
Modern UI for pipeline visualization
Build and run containers in pipelines
Dynamic agent provisioning on K8s
Securely manage secrets and keys
Send build notifications to Slack
Parse and display test results
Agents
Static
Permanent agents (VMs, bare metal). Always available.
Dynamic (Cloud)
Agents provisioned on demand (Docker, K8s, EC2).
Controller
Built-in agent that runs on the Jenkins controller node.
Blue Ocean UI
Modern, visual interface for Jenkins pipelines. Provides pipeline editor, real-time visualization of stages, log views, and branch activity. Reduces complexity of traditional Jenkins UI.