新闻详情

新闻详情

首页 / 资讯中心 / 详情

CICD_01_持续集成与Jenkins入门

发布时间:2026/10/1 20:59:53来源:尧图网络
CICD_01_持续集成与Jenkins入门
【CI/CD】持续集成入门与 Jenkins 基础从概念到第一个 Pipeline关键词CI/CD、Jenkins、Pipeline、Jenkinsfile、持续集成、自动化构建一、什么是 CI/CD1.1 三个核心概念概念英文含义持续集成CIContinuous Integration频繁地将代码合并到主干每次合并自动触发构建和测试持续交付CDContinuous Delivery在 CI 基础上代码随时可以手动触发部署到生产环境持续部署CDContinuous Deployment在持续交付基础上通过测试后自动部署到生产环境无需人工干预代码提交 → 自动构建 → 自动测试 → 自动部署 ↑ ↑ ↑ ↑ CI CI CD(交付) CD(部署)1.2 为什么需要 CI/CD没有 CI/CD 的痛点手动打包、手动部署容易出错集成问题到了上线前才发现修复成本极高环境不一致导致在我电脑上能跑部署依赖某个人请假就没人能发布有了 CI/CD 之后每次提交自动触发构建和测试问题早发现构建、测试、部署全流程自动化减少人为失误保证每次发布的产物都是一致的任何人都能触发部署不依赖特定人员二、主流 CI/CD 工具对比工具特点适用场景Jenkins开源免费、插件生态丰富、高度可定制企业级项目需要高度定制GitLab CI与 GitLab 深度集成、YAML 配置使用 GitLab 托管的项目GitHub Actions与 GitHub 深度集成、Marketplace 丰富开源项目、GitHub 托管项目Drone轻量级、容器原生小型团队、容器化项目选择建议企业私有化部署选 Jenkins代码在 GitLab 选 GitLab CI代码在 GitHub 选 GitHub Actions。本系列以 Jenkins 为主。三、Jenkins 简介Jenkins是一款开源的自动化服务器用于执行 CI/CD 流水线。3.1 核心能力构建编译代码、打包应用测试运行单元测试、集成测试部署部署到测试/生产环境调度定时任务、Webhook 触发通知邮件、钉钉、Slack 通知3.2 安装方式Docker 安装推荐# 拉取 Jenkins 镜像dockerpull jenkins/jenkins:lts# 启动容器dockerrun-d\--namejenkins\-p8080:8080\-p50000:50000\-vjenkins_home:/var/jenkins_home\jenkins/jenkins:lts# 查看初始密码dockerexecjenkinscat/var/jenkins_home/secrets/initialAdminPassword直接安装# Ubuntu/Debiansudoapt-getinstalljenkins# CentOS/RHELsudoyuminstalljenkins# macOSbrewinstalljenkins-lts3.3 初始化配置首次访问http://localhost:8080按以下步骤完成初始化解锁 Jenkins输入初始管理员密码安装插件选择「安装推荐的插件」创建管理员账户配置 Jenkins URL四、Pipeline 核心概念Pipeline 是 Jenkins 的核心功能用代码定义整个 CI/CD 流程。4.1 两种 Pipeline 语法类型说明推荐度Declarative声明式结构化语法更易读易维护✅ 推荐Scripted脚本式基于 Groovy 脚本更灵活复杂场景使用4.2 关键术语术语说明Pipeline整个流水线定义完整的 CI/CD 流程Stage阶段如 Build、Test、DeployStep步骤每个阶段内的具体操作Node/Agent执行任务的节点Jenkinsfile定义 Pipeline 的文件放在项目根目录五、第一个 Jenkinsfile5.1 最简 Pipeline// Jenkinsfilepipeline{agent any stages{stage(构建){steps{echo正在构建...shecho Build complete}}stage(测试){steps{echo正在运行测试...shecho Tests passed}}stage(部署){steps{echo正在部署...shecho Deployed successfully}}}}5.2 Java 项目 Pipelinepipeline{agent any tools{mavenMaven-3.9jdkJDK-21}stages{stage(编译){steps{shmvn clean compile}}stage(单元测试){steps{shmvn test}post{always{junittarget/surefire-reports/*.xml}}}stage(打包){steps{shmvn package -DskipTests}}stage(部署){steps{shscp target/*.jar deployserver:/app/shssh deployserver systemctl restart myapp}}}post{success{echo✅ 构建成功}failure{echo❌ 构建失败}}}六、Freestyle vs Pipeline对比Freestyle 项目Pipeline 项目配置方式Web 界面点击配置Jenkinsfile 代码定义可追溯配置不可追溯随代码一起版本管理可复用难以复用Pipeline 可复用、可共享复杂逻辑难以实现支持条件、并行、循环推荐度❌ 不推荐✅ 推荐建议新项目直接用 Pipeline老 Freestyle 项目逐步迁移。七、凭据管理7.1 为什么需要凭据管理Pipeline 中需要访问 Git 仓库、部署服务器、数据库等这些都需要密码、Token 或密钥。不能明文写在 Jenkinsfile 中。7.2 添加凭据Jenkins → Manage Jenkins → Credentials → System → Global credentials 添加类型 - Username with password用户名密码 - SSH Username with private keySSH 密钥 - Secret textToken/Secret - Secret file证书文件7.3 在 Pipeline 中使用pipeline{agent any environment{// 引用凭据GIT_CREDENTIALScredentials(git-credentials-id)DB_PASSWORDcredentials(db-password-id)}stages{stage(拉取代码){steps{// 使用凭据访问 Gitgit credentialsId:git-credentials-id,url:https://gitlab.com/xxx/project.git}}stage(连接数据库){steps{sh mysql -h db-host -u root -p${DB_PASSWORD}-e SELECT 1 }}}}八、构建触发器8.1 触发方式方式说明场景手动触发点击「Build Now」调试、紧急发布定时触发Cron 表达式定时构建、日报Webhook代码推送时自动触发CI/CD 核心场景轮询 SCM定时检查代码变化GitLab/GitHub Webhook 不可用时的备选8.2 定时触发配置pipeline{agent any triggers{// 每天晚上 10 点构建cron(0 22 * * *)// 每 4 小时构建一次// cron(H H/4 * * *)}stages{stage(构建){steps{shmvn clean package}}}}8.3 Webhook 触发GitLab1. Jenkins 安装 GitLab 插件 2. 在 Jenkins Pipeline 配置中勾选「Build when a change is pushed to GitLab」 3. 复制 Webhook URL 4. 在 GitLab 项目 → Settings → Webhooks 中粘贴 URL 5. 测试 Webhook 是否正常九、面试高频问题Q1CI 和 CD 的区别答CI持续集成关注代码合并后的自动构建和测试CD 有两个含义——持续交付Continuous Delivery是代码随时可部署到生产环境但需要手动触发持续部署Continuous Deployment是测试通过后自动部署无需人工干预。Q2Jenkins Pipeline 和 Freestyle 的区别答Freestyle 通过 Web 界面配置配置不可追溯、难以复用Pipeline 通过 Jenkinsfile 代码定义随代码一起版本管理支持条件判断、并行执行、循环等复杂逻辑推荐优先使用 Pipeline。Q3如何在 Jenkins 中安全地管理密码和密钥答使用 Jenkins 凭据管理功能Credentials将密码、Token、密钥等存储在全局或项目级凭据中Pipeline 中通过credentials()函数引用避免明文写入代码。十、总结知识点核心要点CI/CD持续集成→持续交付→持续部署Jenkins开源自动化服务器支持构建/测试/部署Pipeline用 Jenkinsfile 定义 CI/CD 流程关键术语Stage、Step、Agent、Node凭据管理密码/Token 不要明文写在 Jenkinsfile触发器手动/定时/Webhook/轮询下一篇预告《Jenkins 实战与进阶》详解多分支 Pipeline、参数化构建、Docker 集成与通知配置。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

软件架构师实战指南:质量属性驱动的系统演化与治理 2026/10/1 23:55:27

软件架构师实战指南:质量属性驱动的系统演化与治理

1. 这本书不是“教材”,而是软件架构师的实战手记你有没有遇到过这样的场景:团队在做微服务拆分时,争论该按业务域还是数据边界切分;上线前压测发现某个核心接口响应时间飙升300%,但监控里找不到瓶颈点;新来…

阅读更多 →
从Claude Code到Pi:多Agent编排与Harness工程化迁移实战 2026/10/1 23:55:27

从Claude Code到Pi:多Agent编排与Harness工程化迁移实战

1. 这场“迁移潮”到底在迁移什么 最近半年,我所在的几个 AI 工程群里,讨论风向明显变了。去年大家还在热火朝天地聊 Claude Code 怎么配置、怎么接入各种模型、怎么在终端里跑通一个完整项目;今年画风一转,越来越多人在问“Pi 装…

阅读更多 →
马德拉岛全攻略:徒步、自驾与美食指南 2026/10/1 23:55:27

马德拉岛全攻略:徒步、自驾与美食指南

去葡萄牙之前,几乎所有朋友给我灌输的路线都是“里斯本加波尔图,要么去南部海滩”,没有一个人提过 Madeira。我最后会坐上飞往丰沙尔的廉航转机,纯粹因为一张便宜机票,加上一个很朴素的好奇心:C罗老家、欧洲…

阅读更多 →
马德拉岛终极旅行攻略:利瓦达徒步、马德拉酒与蓬查体验指南 2026/10/1 23:55:26

马德拉岛终极旅行攻略:利瓦达徒步、马德拉酒与蓬查体验指南

1. 为什么是马德拉?一座值得反复刷的葡萄牙火山岛 大多数人第一次听到“Madeira”这个词,是从三种完全不同的渠道:有人是在酒柜前看到一瓶琥珀色的强化酒,有人是刷到一张悬崖边海水泳池的照片,还有人是从葡萄牙回来的朋…

阅读更多 →
十二个AI工具集合站大全:通用聚合、垂直场景与本地部署 2026/10/1 23:55:26

十二个AI工具集合站大全:通用聚合、垂直场景与本地部署

1. 这十二个AI工具集合站到底解决了什么痛点先说说我为什么要整理这么一份清单。过去大半年,我陆陆续续测试了市面上几乎叫得出名字的AI工具,从写代码的、画图的、做PPT的,到整理实验数据的、辅助写教材的,甚至专门用来给文章“降…

阅读更多 →
模型优化四层漏斗:从算法到硬件的系统化实践 2026/10/1 23:55:19

模型优化四层漏斗:从算法到硬件的系统化实践

1. 这不是又一个“一键压缩”工具:Model-Optimizer 的真实定位与误用陷阱“Model-Optimizer”——光看名字,很多人第一反应是“模型压缩”“剪枝量化”“部署加速”,甚至直接联想到TensorRT、ONNX Runtime这类工业级推理引擎的前端预处理模块…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉