jenkins 自动部署

发布于:2025-08-16 ⋅ 阅读:(15) ⋅ 点赞:(0)

一、win10 环境安装:

1、jdk 下载安装:Index of openjdk-local

2、配置环境变量:

3、jenkins 下载:Download and deploy  下载后的结果:jenkins.war

4、jenkins 启动:

5、创建管理员用户 admin 登录系统:

6、创建任务:

7、增加构建步骤的脚本:

@echo off
cd /d parent\vue2

set HASH_FILE=.%HASH%.json.hash
set CURRENT_HASH_FILE=.%CURRENT%.json.hash

echo [1/5] 生成当前 package.json 和 package-lock.json 的哈希值...

:: 使用 PowerShell 计算两个文件的合并哈希(如果文件不存在则视为空)
powershell.exe -Command "Get-FileHash package.json,package-lock.json -Algorithm MD5 | ForEach-Object { $_.Hash }" > %CURRENT_HASH_FILE% 2>nul || echo EMPTY > %CURRENT_HASH_FILE%

:: 检查是否有上次的哈希记录
if not exist %HASH_FILE% (
    echo 上次依赖哈希记录不存在,首次构建或依赖已变,执行 npm install...
    goto :REINSTALL
)

:: 比对哈希
fc %HASH_FILE% %CURRENT_HASH_FILE% > nul
if %errorlevel% equ 0 (
    echo 依赖未变化,跳过 npm install,直接构建...
    goto :BUILD
) else (
    echo 依赖已变化,重新安装...
    goto :REINSTALL
)

:REINSTALL
if exist node_modules (
    echo 删除 node_modules...
    rd /s /q node_modules
)
echo 执行 npm install...
call npm install
if %errorlevel% neq 0 (
    echo npm install 失败!
    exit /b 1
)
:: 更新哈希文件
move /y %CURRENT_HASH_FILE% %HASH_FILE%
goto :BUILD

:BUILD
echo 执行 npm run build...
call npm run build
if %errorlevel% neq 0 (
    echo 构建失败!
    exit /b 1
)

echo ✅ 构建完成!

:: 清理临时文件
if exist %CURRENT_HASH_FILE% del %CURRENT_HASH_FILE%
exit /b 0

上面的配置完成之后,已经可以构建项目了,提交完代码之后,手动点击构建按钮,会在默认目录生产构建产物:C:\Users\Administrator\.jenkins\workspace\test\parent\vue2

二、将构建产物上传到本地 nginx 服务器上:

1、本地搭建了一个 nginx 服务器

三、实现 jenkins 每次构建后,将构建产物上传到 nginx 服务器上,并刷新静态内容

1、在 jenkins 增加构建步骤

脚本:

@echo off

:: 定义变量
set SOURCE_DIR=C:\Users\Administrator\.jenkins\workspace\test\parent\vue2\dist
set TARGET_DIR=D:\usr\web

:: 复制 dist 目录下的所有文件和子目录到目标目录,覆盖已有文件
xcopy "%SOURCE_DIR%" "%TARGET_DIR%" /E /I /Y /Q

:: 判断复制是否成功
if %errorlevel% equ 0 (
    echo 复制成功。
) else (
    echo 复制失败,错误代码: %errorlevel%
    exit /b %errorlevel%
)

:: 重启 Nginx
echo 正在重启 Nginx...
cd /d D:\usr\nginx && nginx -s reload

:: 检查 Nginx 是否正在运行,如果没有则启动
tasklist | findstr nginx.exe >nul
if %errorlevel% equ 1 (
    echo Nginx 未运行,正在启动...
    start "" D:\usr\nginx\nginx.exe
)

echo Nginx 重启完成。

exit /b 0

基于上面操作步骤,点击构建的时候,可以实现拉取 github 上的最近代码,构建前端代码,将构建产物上传到 nginx 服务器上,并启 nginx 自动构建部署功能。

四、优化为提交代码后自动构建部署

1、如果有服务器,可以使用下面这种方式

2、仅用于简单学习,可以下面这种方式实现

后序,1、学习 docker;2、学习 linux,模拟真实环境。