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

Jenkins(速通版)

一、项目部署:

回归测试

Nexus: maven的私服仓库,从这里面取拉取。没有的话,远程仓库下载到nexus。

项目开发-部署的完整生命周期

任务:项目管理软件。Jira、禅道; 开发每天领开发任务;

开发:项目开发工具。VSCode、Idea、Eclipse; 进行代码开发;

提交:代码仓库。Github、Gitee、Gitlab、SVN; 把开发完成的代码提交推送到公司的代码仓库

构建:项目构建工具。 maven、npm; 利用构建工具对项目进行编译、构建。

质量分析:代码分析工具。sonarqube; 把所有代码进行扫描,分析出不符合规范的代码、以及常见bug。"1".equals(param) null != orderInfo;

单元测试:测试工具。junit; 把单元测试跑一遍; 测试覆盖率(90%);

制品:制作产品。nexus、maven中央仓库; 把项目产生的jar包、静态文件、exe等 上传到制品仓库。

service-order-v1.0.jar制作镜像:把产品做成镜像;docker、harbor;把制作好的docker镜像推送到镜像仓库。

部署:把产品镜像集群化的部署到线上平台; docker ---> kubernetes;

监控运维:把每个应用各种指标监控起来; Prometheus+Grafana; 把各种预警信息发送给运维、开发;

整个生命周期涉及到众多工具链。如果从头到尾都是手动自己做,就会非常慢。

Jenkins: 帮我们打通devops整个链路。

以前我们手动运行一堆命令,最终实现项目部署

Jenkins整合各种软件帮我们自动运行部署期间的所有命令;

1、CI(Continuous Integration)

持续集成: 开发好的模块,集成整个系统中进行联动测试; 把开发好的功能自动化部署到测试环境。

2、CD(Continuous Delivery 和 Continuous Deployment)

持续交付、持续部署;

持续交付与持续部署的区别:持续交付是一种能力,持续部署是一种方式。持续部署:把产品自动化的部署到生产环境。 先CI再CD;

交付: 把开发好的产品交给客户;

二、制作流水线

前置条件:有一个maven项目

2.1 代码推送到代码仓库
2.2 jenkins自动去仓库拉取代码

重要的流水线步骤

pipeline {agent anystages { //所有阶段stage('构建') { //stage定义一个阶段steps {sh 'mvn clean build'}}stage('质量分析') {steps {echo '打包  ok...'}}stage('单元测试') {steps {echo 'deploy ok...'}}stage('打包制品') {steps {echo 'deploy ok...'}}stage('制作镜像') {steps {echo 'deploy ok...'}}stage('部署') {steps {echo 'deploy ok...'}}}
}
2.3 在jenkins中安装maven 环境

可以用下面的命令拉取镜像

stage('构建') { //stage定义一个阶段steps {//  可以先使用命令下载环境 docker pull maven:3.9.0-amazoncorretto-8withDockerContainer('maven:3.9.0-amazoncorretto-8') {// some blocksh 'ls'sh 'pwd'sh 'mvn clean package'}}}
2.4 在jenkins中配置外部镜像
2.5 单元测试
stage('单元测试') {steps {withDockerContainer(args: '-v mvn-conf:/usr/share/maven/conf -v mvn-rep:/root/.m2',image: 'maven:3.9.0-amazoncorretto-8') {sh 'mvn test '}}}
2.6 打包制品
stage('打包制品') {steps {archiveArtifacts artifacts: 'target/*.jar', followSymlinks: false}
}
2.7 制作镜像并部署
FROM openjdk:8COPY target/*.jar /app.jarEXPOSE 8080ENV TZ=Asia/ShanghaiENTRYPOINT ["java","-jar","/app.jar"]

docker build -f DockerFile -t devops-demo:v1.0

使用jenkins的话:

stage('制作镜像') {steps {sh 'docker build -f DockerFile -t devops-demo:v1.0 .'}
}
stage('部署') {steps {sh 'docker rm -f devops-demo'sh 'docker run -d -p 88:8080 --name devops-demo devops-demo:v1.0'}
}
2.8 触发远程构建:Jenkins -- 了解

修改完成之后,项目会自动更新!

2.9 参数化构建
parameters {string(name: 'APP_VER', defaultValue: 'v1.0', description: '版本号')
}stage('制作镜像') {steps {sh "docker build -f DockerFile -t devops-demo:${APP_VER} ."}
}
stage('部署') {steps {sh 'docker rm -f devops-demo'sh "docker run -d -p 88:8080 --name devops-demo devops-demo:${APP_VER}"}
}
2.10 推送镜像
2.11 发送邮件
stage('发送邮件'){steps {emailext body: '项目已经部署完毕', subject: '构建完成', to: 'xxxxxxxxx@qq.com'}
}

记得打开邮箱功能:

立即构建,可以看到结果

http://www.dtcms.com/a/397938.html

相关文章:

  • IDEA新建SpringBoot项目时没有低版本Java选项
  • Jupyter Lab 汉化
  • Amazon Chime SDK 详解:AWS 的实时音视频利器
  • python学智能算法(三十八)|使用Numpy和PyTorch模块绘制正态分布函数图
  • 佛山网站建设no.1开源站群cms
  • 阿里云SVN服务器搭建出现svn log messages no date
  • 豆包・图像创作模型Seedream4.0创意玩法大赏:开启 AI 绘画新纪元
  • 强化学习策略梯度算法梳理:从REINFORCE到PPO2(REINFORCE、QAC、A2C、Off-Policy AC、PP01、PPO2))
  • 产品网站开发流程图邹平做网站
  • ruoyi 框架添加新module
  • python解析通达信dat与blk数据文件【附源码】
  • 捕获Mybatis执行的Sql
  • Kubernetes 进阶实战:CRD、Gateway API 与优先级调度
  • Netdata系统监控:30秒定位服务器故障的实践方法
  • 制作 Bash Shell 方式的软件发布安装包的原理和方法
  • 网站标题怎么做链接云服务器建设网站教程
  • 栈-堆理解题(c++)
  • 江西同为科技有限公司亮相2025北京国际两用先进技术装备展览会 —— 致力于电气联接与保护,推动两用技术融合发展
  • 网站首页幻灯片不显示知更鸟wordpress主题
  • React 基础:快速掌握 State、事件和 Hook
  • 烟台网站制作计划wordpress怎么修改logo尺寸
  • Apache Hive 如何在大数据中发挥能量
  • CSS——实现盒子在页面居中
  • RocketMQ相对于RabbitMQ 的优势
  • ELK 企业级日志分析系统(完整版)
  • WaveTerminal+cpolar:提升远程协作效率的开发利器
  • 【记录】Ubuntu系统实现从远程服务器上传下载文件
  • 通过串口控制RDA5807收音模块(stm32+c#上位机)
  • hive表元数据修复脚本
  • React中的Hook