当前位置: 首页 > news >正文

Jenkins全方位CI/CD实战指南

Jenkins简介

Jenkins是一个开源的持续集成和持续交付(CI/CD)工具,用于自动化软件开发过程中的构建、测试和部署任务。它通过插件扩展支持多种开发、测试和部署技术,帮助团队实现高效的软件交付流程。

jenkins安装

使用 Docker 安装 Jenkins

运行以下命令启动 Jenkins 容器:

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

访问 http://localhost:8080 完成初始化设置,初始密码可在容器日志中找到:

docker logs <container_id>

在 Ubuntu 上安装 Jenkins

添加 Jenkins 官方仓库密钥:

curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null

添加 Jenkins 仓库:

echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null

更新系统并安装 Jenkins:

sudo apt-get update
sudo apt-get install jenkins

在 CentOS/RHEL 上安装 Jenkins

添加 Jenkins 仓库:

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

安装 Jenkins:

sudo yum install jenkins
sudo systemctl start jenkins
sudo systemctl enable jenkins

在 Windows 上安装 Jenkins

下载 Windows 安装包: 访问 Jenkins 官网 下载 Windows 版本的安装程序。 运行安装程序并按照向导完成安装,安装完成后访问 http://localhost:8080 进行配置。

初始化 Jenkins

访问 Jenkins 控制台后,从指定路径获取初始管理员密码:

cat /var/lib/jenkins/secrets/initialAdminPassword

选择安装推荐的插件或自定义插件,创建管理员账户并完成配置。

防火墙配置

开放 Jenkins 默认端口 8080 和代理端口 50000:

sudo ufw allow 8080
sudo ufw allow 50000
sudo ufw enable

常见问题解决

如果遇到插件安装失败,检查网络连接或更换镜像源:

sudo sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' /var/lib/jenkins/hudson.model.UpdateCenter.xml

核心功能

自动化构建与测试
Jenkins可以监控版本控制系统(如Git、SVN)的变更,触发自动构建和测试流程,确保代码变更不会引入错误。

Jenkins与Git结合实例

配置Jenkins与Git集成

在Jenkins中安装Git插件(如默认未安装),进入系统管理 > 插件管理,搜索并安装"Git Plugin"。完成后,在全局工具配置中设置Git的路径(或选择自动安装)。

创建Jenkins任务

新建一个自由风格项目,在源码管理部分选择"Git",填写仓库URL(如https://github.com/user/repo.git)和凭证(用户名/密码或SSH密钥)。指定分支(如*/main)。

设置构建触发器

在"构建触发器"中勾选"Poll SCM",设置定时检查Git仓库的间隔(如H/5 * * * *表示每5分钟检查一次变更)。也可使用GitHub Webhook实现实时触发。

添加构建步骤

在"构建"部分添加执行shell或Windows批处理命令的步骤,例如:

mvn clean package

或调用其他脚本处理代码。

配置构建后操作

例如存档JUnit测试报告或构建产物:

**/target/*.jar

可添加邮件通知或Slack通知插件,在构建失败时发送警报。


使用Jenkinsfile实现Pipeline

在Git仓库根目录创建Jenkinsfile,定义声明式或脚本式流水线。以下为声明式示例:

pipeline {agent anystages {stage('Build') {steps {sh 'mvn clean package'}}stage('Test') {steps {sh 'mvn test'}}}
}
http://www.lryc.cn/news/590121.html

相关文章:

  • U3D打包IOS的自我总结
  • 如何选择适合的云手机配置?解决资源不足带来的性能瓶颈
  • Unity Android Logcat插件 输出日志中文乱码解决
  • Kafka 与 RocketMQ 消息确认机制对比分析
  • 深度解析:Python实战京东资产拍卖平台爬虫,从ID抓取到详情数据落地
  • 2025年C++后端开发高频面试题深度解析:线程安全LRU缓存设计与实现
  • 短剧系统开发:塑造数字娱乐新未来
  • 面试150 二叉树的层序遍历
  • UE5 相机后处理材质与动态参数修改
  • 猫眼娱乐IOS开发一面手撕算法
  • 工业相机GigE数据接口的优势及应用
  • [特殊字符] 第1篇:什么是SQL?数据库是啥?我能吃吗?
  • SQL,在join中,on和where的区别
  • 锁存型霍尔 IC:定义、应用与优势全解析
  • Git问题排查与故障解决详解
  • 前端性能与可靠性工程:前端韧性工程 - 优雅降级与离线支持
  • 《设计模式之禅》笔记摘录 - 7.中介者模式
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘tkinter’问题
  • 网络编程/Java面试/TCPUDP区别
  • 【代码】Matlab鸟瞰图函数
  • AsyncRelayCommand示例学习
  • 测试开发工作日常用的提示词分享
  • XPath注入攻击详解:原理、危害与防御
  • 智能工厂生产设备状态检测算法
  • 基于多源时序特征卷积网络(MSTFCN)的光伏功率预测模型
  • 基于springboot+vue的酒店管理系统设计与实现
  • 施易德门店管理系统应用案例分析:零售女装品牌伊芙丽的全球化布局
  • PandaWiki与GitBook深度对比:AI时代的知识管理工具,选谁好?
  • 从电子管到CPU
  • Swarm Network 选择 Walrus 实现可验证 AI