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

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.xdnf.cn/news/15491.html

相关文章:

  • 向量数据库Faiss vs Qdrant全面对比
  • 理解大模型的对话和检索能力
  • JWT基础详解
  • 外网访问禅道软件项目管理系统,简单几步将本地内网IP端口设置互联网在线用
  • YOLO13正式发布!考虑将yolov13的创新点融合到半监督中,构建YOLOv13_ssod
  • MySQL 备份与恢复指南
  • 力扣-使用双指针的方法的题们(持续更新中。。。
  • Java全栈工程师面试实录:从电商支付到AI大模型的应用场景与技术栈解析
  • nlp论文:分本分类:《Bag of Tricks for Efficient Text Classification》
  • Pytorch中张量的索引和切片使用详解和代码示例
  • [ROS 系列学习教程] ROS动作通讯(Action):通信模型、Hello World与拓展
  • B/S 架构通信原理详解
  • 【数据结构】单链表练习(有环)
  • C++(STL源码刨析/stack/queue/priority_queue)
  • Rocky Linux 9 源码包安装php8
  • I3C通信协议核心详解
  • 描述统计1
  • 百度移动开发面经合集
  • 【PCIe 总线及设备入门学习专栏 5.1.2 -- PCIe EP core_rst_n 与 app_rst_n】
  • Java 大视界 -- Java 大数据机器学习模型在金融风险传染路径分析与防控策略制定中的应用(347)
  • HTML网页结构(基础)
  • 使用Spring Cloud LoadBalancer报错java.lang.IllegalStateException
  • Nestjs框架: 数据库架构设计与 NestJS 多 ORM 动态数据库应用与连接池的配置
  • QTableView鼠标双击先触发单击信号
  • 项目进度与预算脱节,如何进行同步管理
  • 从0开始学习R语言--Day47--Nomogram
  • 多租户SaaS系统中设计安全便捷的跨租户流程共享
  • 文心一言开源版部署及多维度测评实例
  • 深度解析 AI 提示词工程(Prompt Engineering)
  • 【YOLOv11-目标检测】06-模型部署(C++)