博客
关于我
1-jenkins流水线相关案例
阅读量:798 次
发布时间:2023-04-17

本文共 1135 字,大约阅读时间需要 3 分钟。

Jenkins 流水线案例说明

案例一:代码拉取、构建与部署

该流水线脚本定义了一个全自动化的CI/CD流程,主要包含三个阶段:准备、构建和部署。脚本以 Jenkinsfile 形式定义,适用于自动化构建和部署场景。

准备阶段

该阶段首先检查本地是否存在项目目录。如果不存在,则执行 git clone 命令从指定 Git 仓库克隆代码;如果存在,则切换到 dev 分支并执行 git pull 拉取最新代码。这种方式确保了代码的最新性和一致性。

构建阶段

在构建阶段,脚本设置了 Maven 和 Java 的环境变量,并进入项目目录执行 mvn clean compile package 命令进行编译和打包。为了提高构建效率,跳过了单元测试阶段。

部署阶段

部署阶段通过 scp 命令将构建好的 JAR 包复制到远程服务器。脚本中使用了 SSH 密钥登录,确保了 Jenkins 服务器对目标服务器的访问权限。需要注意的是,脚本中使用了 StrictHostKeyChecking=no 选项,避免了人工确认主机密钥,这在生产环境中需要谨慎处理。

案例二:停止正在运行的应用

该流水线案例定义了一个专门的停止阶段,用于终止正在运行的 Java 应用。脚本通过 psgrep 命令查找包含特定 JAR 文件名的 Java 进程,获取进程 ID 后使用 kill 命令停止进程。为了确保脚本的健壮性,增加了确认停止进程的逻辑,防止误操作。

案例三:工作目录名称设置

该案例展示了如何通过定义环境变量来设置 Jenkins 工作目录的名称。环境变量 WORKSPACE_DIR 定义为工作目录的名称,可以根据需求轻松修改。脚本在部署阶段使用了 ${WORKSPACE_DIR} 变量,代替了硬编码的目录名,使流水线更加灵活和可维护。

案例四:复杂部署流程

该流水线定义了一个较为复杂的部署流程,包括停止现有服务、备份旧应用、清理旧备份以及部署新应用和启动服务。脚本通过 SSH 连接到远程服务器,执行相应的操作。备份和清理步骤确保了部署的安全性和系统的稳定性。

案例五:前端项目的自动化部署

该流水线专门用于前端项目的自动化部署。流程包括从 Git 仓库拉取代码、安装依赖项和构建项目,然后将构建结果部署到远程服务器。脚本中使用了 yarn installyarn build:prod 命令,确保了前端项目的依赖管理和构建效率。

总结

以上案例展示了 Jenkins 流水线在不同场景下的应用,涵盖了代码拉取、构建、部署、服务停止及前端项目管理等多种功能。通过合理定义阶段和环境变量,用户可以根据具体需求定制流水线脚本,实现自动化构建和部署的CI/CD流程。

转载地址:http://vogfk.baihongyu.com/

你可能感兴趣的文章
Mysql中varchar类型数字排序不对踩坑记录
查看>>
MySQL中一条SQL语句到底是如何执行的呢?
查看>>
MySQL中你必须知道的10件事,1.5万字!
查看>>
MySQL中使用IN()查询到底走不走索引?
查看>>
Mysql中使用存储过程插入decimal和时间数据递增的模拟数据
查看>>
MySql中关于geometry类型的数据_空的时候如何插入处理_需用null_空字符串插入会报错_Cannot get geometry object from dat---MySql工作笔记003
查看>>
mysql中出现Incorrect DECIMAL value: '0' for column '' at row -1错误解决方案
查看>>
mysql中出现Unit mysql.service could not be found 的解决方法
查看>>
mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)
查看>>
Mysql中各类锁的机制图文详细解析(全)
查看>>
MySQL中地理位置数据扩展geometry的使用心得
查看>>
Mysql中存储引擎简介、修改、查询、选择
查看>>
Mysql中存储过程、存储函数、自定义函数、变量、流程控制语句、光标/游标、定义条件和处理程序的使用示例
查看>>
mysql中实现rownum,对结果进行排序
查看>>
mysql中对于数据库的基本操作
查看>>
Mysql中常用函数的使用示例
查看>>
MySql中怎样使用case-when实现判断查询结果返回
查看>>
Mysql中怎样使用update更新某列的数据减去指定值
查看>>
Mysql中怎样设置指定ip远程访问连接
查看>>
mysql中数据表的基本操作很难嘛,由这个实验来带你从头走一遍
查看>>