温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何用Jenkins做持续集成

发布时间:2026-09-04 23:44:59 来源:亿速云 阅读:102 作者:小樊 栏目:系统运维

下面给你一个**从 0 到 1 用 Jenkins 做持续集成(CI)**的实用指南,偏工程落地,不堆概念。


一、什么是 Jenkins 持续集成(CI)

核心目标:
代码一提交 → 自动构建 → 自动测试 → 快速反馈问题

典型流程:

代码提交 (Git)
   ↓
Jenkins 拉代码
   ↓
编译 / 打包
   ↓
单元测试 / 静态检查
   ↓
生成报告 / 通知

二、基础环境准备

1. 安装 Jenkins

方式一:Docker(推荐)

docker run -d \
  -p 8080:8080 \
  -p 50000:50000 \
  -v jenkins_home:/var/jenkins_home \
  jenkins/jenkins:lts

访问:

http://localhost:8080

2. 安装必要插件

进入:

Manage Jenkins → Plugins

推荐插件:

  • Git
  • Pipeline
  • GitHub / GitLab
  • Maven / Gradle / NodeJS(按语言)
  • Docker
  • Email / Slack Notification

三、最简单的一次 CI(Freestyle 项目)

示例:Java + Maven

  1. 新建任务 → Freestyle project
  2. 源码管理:
    • Git
    • Repository URL
  3. 构建触发器:
    • Poll SCM:*/5 * * * *
  4. Build:
mvn clean test

✅ 提交代码后每 5 分钟自动构建


四、推荐方式:Jenkins Pipeline(重点)

1. 什么是 Pipeline

  • 用代码定义 CI 流程
  • 文件:Jenkinsfile
  • 可版本化管理

2. 示例 Jenkinsfile(Maven)

pipeline {
    agent any

    stages {
        stage('Checkout') {
            steps {
                git 'https://github.com/your/repo.git'
            }
        }

        stage('Build') {
            steps {
                sh 'mvn clean package'
            }
        }

        stage('Test') {
            steps {
                sh 'mvn test'
            }
        }
    }

    post {
        failure {
            echo '构建失败,发送通知'
        }
    }
}

3. 在 Jenkins 中使用

  1. 新建任务 → Pipeline
  2. 选择:
    • Pipeline script from SCM
    • Git + Jenkinsfile 路径

五、常见 CI 场景示例

✅ 前端(Node.js)

stage('Build') {
    steps {
        sh 'npm install'
        sh 'npm run build'
    }
}

✅ 自动化测试

stage('Test') {
    steps {
        sh 'pytest'
    }
}

✅ Docker 构建

stage('Docker') {
    steps {
        sh 'docker build -t myapp:latest .'
    }
}

六、持续集成的“最佳实践”

✅ 每次提交都触发 CI
✅ 构建时间控制在 10 分钟内
✅ 失败立即通知(邮件 / 钉钉 / 企业微信)
✅ 不信任本地环境,全部在 Jenkins 跑
✅ 测试覆盖率作为质量门禁


七、进阶方向(CI → CD)

  • 自动部署到测试环境
  • Kubernetes + Jenkins
  • 多分支 Pipeline
  • 质量门禁(SonarQube)
  • 蓝绿 / 灰度发布

八、一句话总结

Jenkins 做 CI = 代码提交 → 自动构建测试 → 快速反馈

如果你愿意,我可以:

  • 给你一个 完整 Jenkinsfile 模板
  • 按你的 语言(Java / Python /前端) 定制
  • 教你 Jenkins + Docker + K8s

你现在是想用在什么项目上?

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手