Skip to content

Jenkins 的核心作用一句话总结:
“把『代码 → 构建 → 测试 → 部署』整个流程全部自动化,让软件随时可发布、可追溯、可回滚。”


  1. 它到底帮你做了什么?
    | 传统做法 | Jenkins 自动化后 | |---|---| | 开发手动打包 jar/war | 代码 push → Jenkins 自动 mvn clean package | | 手动跑单元测试 | 构建完自动跑 JUnit、Sonar 静态扫描 | | 手动把 jar 拷到服务器 | 构建产物自动上传到制品库(Nexus / Artifactory) | | 手动 SSH 部署 | 自动触发 Ansible / Kubectl / Docker 部署脚本 | | 出问题不知道谁改的 | 邮件/钉钉/飞书实时报警 + 构建历史可追溯 |

  1. 典型流水线(Pipeline as Code)
groovy
pipeline {
    agent any
    stages {
        stage('拉代码') {
            steps { git 'https://github.com/acme/app.git' }
        }
        stage('编译') {
            steps { sh 'mvn clean package -DskipTests' }
        }
        stage('单测') {
            steps { sh 'mvn test' }
        }
        stage('镜像') {
            steps {
                script {
                    def img = docker.build("acme/app:${BUILD_NUMBER}")
                    img.push()
                }
            }
        }
        stage('部署') {
            steps { sh 'kubectl set image deploy/app app=acme/app:${BUILD_NUMBER}' }
        }
    }
    post {
        failure { dingTalk "构建失败:${BUILD_URL}" }
    }
}

  1. 日常 3 大玩法
  2. CI(持续集成):每次 PR 就自动编译+单测,保证主分支永远是绿色。
  3. CD(持续交付 / 部署):合并到主干后,自动部署到测试/预发/生产。
  4. 任务调度:定时跑脚本、备份、清理临时文件,充当「分布式 crontab」。

  1. 插件生态
    1500+ 插件一键安装:
    • 源码:Git、SVN、GitLab、GitHub
    • 构建:Maven、Gradle、npm、Go
    • 测试:JUnit、Cucumber、SonarQube、Allure
    • 部署:SSH、Ansible、Docker、Kubernetes、Helm
    • 通知:Email、钉钉、Slack、飞书

一句话记忆
Jenkins 就是「24 小时不下班的运维同学」,让“人肉发布”成为历史。