下面我按**“概念 → 搭建流程 → 典型 CI 流程 → 示例 → 最佳实践”的顺序,讲清楚如何用 Jenkins 做持续集成(CI)**。
持续集成(CI):开发人员频繁地把代码合并到主干,并自动进行构建、测试、检查,尽早发现错误。
Jenkins 的作用:
开发者 push 代码
↓
Git / SVN
↓
Jenkins(触发 Job)
↓
构建 + 测试 + 静态检查
↓
结果通知(邮件 / 钉钉 / 企业微信)
常见方式:
docker run -d -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts
apt install jenkins
访问:
http://localhost:8080
在 Manage Jenkins → Plugins 中安装:
mvn clean package
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 {
success {
echo 'CI 成功'
}
failure {
echo 'CI 失败'
}
}
}
把 Jenkinsfile 放在项目根目录,Jenkins 自动读取。
http://jenkins-url/gitlab-hook/
效果:
开发者 push → Jenkins 自动构建
代码提交
↓
代码静态检查(SonarQube)
↓
单元测试
↓
打包
↓
构建结果通知
示例 Pipeline:
stage('SonarQube') {
steps {
sh 'mvn sonar:sonar'
}
}
post {
failure {
mail to: 'dev@example.com',
subject: 'CI 失败',
body: '请检查 Jenkins'
}
}
✅ 每次提交都触发 CI
✅ 构建要快(< 10 分钟)
✅ 测试失败禁止合并
✅ 使用 Pipeline 而非 Freestyle
✅ 构建环境容器化(Docker)
✅ 日志清晰、失败可定位
❌ 构建依赖写死在 Jenkins 机器
❌ 没有测试就号称 CI
❌ 手动触发构建
❌ 构建时间太长
如果你愿意,我可以:
你现在是用的什么语言/项目?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。