作者:微信小助手
发布时间:2024-06-30T23:17:17
你好,我是悟空。 本文目录如下: 一、Jenkins 前端部署思路 1.1 整体架构图 1.2 部署步骤 二、Pipeline和自由风格对比 三、Pipeline 核心脚本 3.1 获取 Git 代码分支 3.2 拷贝依赖包 3.3 编译代码 3.4 备份代码 3.5 上传代码 3.6 更新代码 3.7 清理代码 3.8 邮件通知 四、总结 Jenkins是一个开源的自动化服务器,它可以帮助自动化各种任务,包括构建、测试和部署软件。 上次我们讲解了如何通过 Jenkins 的自由风格的软件项目来配置前端的自动化部署,如下图所示,如何选择自由风格的软件项目。优点就是简单! 这次我们将讲解如何通过流水线(Pipeline)方式来部署前端项目。优点就是更加灵活!如下图所示,就是选择 Pipeline 方式。 在Jenkins中,有两种主要类型的任务:Pipeline任务和自由风格项目(Freestyle project)。 两者的主要区别包括: 提示:Pipeline 任务代表了Jenkins的未来方向,提供了更高级的自动化构建能力,而自由风格项目则适合快速设置简单的构建任务。随着Jenkins的发展,越来越多的用户和组织倾向于使用Pipeline任务来实现更高效的自动化流程。 用了一个插件 gitParameter,可以获取 git 仓库的分支,部署的时候,可以选择分支。如下图所示,Git 仓库有 develop 和 master 分支,默认选中 develop 分支。 这个步骤中有一一行关键的代码,可以通过 Git 插件获取选择的 Git 分支。 因为 node_modules 不会上传到 git 仓库,所以我们需要提前准备好。 而我们项目我是先在有网的 Linux 服务器上用 npm install 命令下载的依赖包,然后手动压缩拷贝到 jenkins 服务器的 passjava 目录。 当执行部署的时候,会从 passjava 目录将 node_modules 压缩包拷贝并解压到 jenkins 的当前工作目录。 编译前端代码可以用 npm run build xx 命令,然后将编译后的 dist 目录压缩。 将 web 服务器上多个前端项目移动到备份目录 web-bak 。 将编译后的代码包上传到 web 服务器。 将 dist 压缩包解压,然后将多个前端工程拷贝到 web 目录。如 passjavabase, passjava-channel, project-contract 目录拷贝到 passjava-web-micro 目录。 清理 web 服务器上备份的代码。 以下命令是查找并删除指定路径下超过7天未修改的目录。 这条命令会找到 该步骤的完整代码如下: 详见笔者之前写的一篇:持续集成:Jenkins Pipeline 邮件通知 通过使用 Jenkins Pipeline 进行前端自动化部署,团队可以更加高效地管理和部署前端应用程序,减少人为错误和手动操作带来的风险,提升整体的开发和部署效率。 本文通过图解+代码的方式讲解了前端自动化部署的步骤,文中的脚本针对前端的三个模块进行打包,比较耗时,所以后续可以优化的地方是支持选择部署前端的不同模块。
二、Jenkins 前端部署思路
1.1 整体架构图
1.2 部署步骤
二、Pipeline和自由风格对比
“
三、Pipeline 核心脚本
3.1 获取 Git 代码分支
3.1.1 Git 分支插件
3.1.2 Git 环境变量
3.1.3 获取 Git 分支代码
3.2 拷贝依赖包
3.3 编译代码
3.4 备份代码
3.5 上传代码
3.6 更新代码
3.7 清理代码
/nfs-data/passjava/web-bak/
目录下所有超过7天未修改的子目录,并将其打印出来,然后删除这些目录。
-mindepth 1
:确保查找从指定目录的子目录开始,不包括指定的根目录。
-maxdepth 1
:限制查找仅在指定目录的第一层子目录中进行。
-type d
:只考虑目录,不包括文件。“-type -f” 只考虑文件,不包括目录。
-mtime +7
:筛选出修改时间超过7天的目录。
-print
:打印出这些目录的路径。
-exec rm -rf {} +
:对找到的每个目录执行
rm -rf
命令,递归且强制删除该目录及其内容。
3.8 邮件通知
四、总结