mirror of
https://gitee.com/kekingcn/file-online-preview.git
synced 2026-04-17 22:03:41 +00:00
58 lines
2.4 KiB
Java
58 lines
2.4 KiB
Java
# kkFileView master 自动部署
|
||
|
||
当前线上 Windows 服务器的实际部署信息如下:
|
||
|
||
- 部署根目录:`C:\kkFileView-5.0`
|
||
- 运行 jar:`C:\kkFileView-5.0\bin\kkFileView-5.0.jar`
|
||
- 启动脚本:`C:\kkFileView-5.0\bin\startup.bat`
|
||
- 运行配置:`C:\kkFileView-5.0\config\test.properties`
|
||
- 健康检查地址:`http://127.0.0.1:8012/`
|
||
|
||
当前自动部署链路采用服务器拉最新源码并本机编译的方式:
|
||
|
||
1. 通过 WinRM 连接 Windows 服务器
|
||
2. 在服务器上的源码目录执行 `git fetch/reset/clean`,同步到 `origin/$KK_DEPLOY_BRANCH`(默认 `master`)
|
||
3. 使用服务器上的 JDK 21 和 Maven 执行 `mvn clean package -Dmaven.test.skip=true`
|
||
4. 备份线上 jar,替换为新构建产物
|
||
5. 使用现有 `startup.bat` 重启,并做健康检查
|
||
6. 如果健康检查失败,则自动回滚旧 jar 并重新拉起
|
||
|
||
## 需要配置的 GitHub Secrets
|
||
|
||
- `KK_DEPLOY_HOST`
|
||
- `KK_DEPLOY_USERNAME`
|
||
- `KK_DEPLOY_PASSWORD`
|
||
|
||
以下部署参数当前由 workflow 从 GitHub Secrets 读取;如果未单独配置,则使用脚本默认值:
|
||
|
||
- `KK_DEPLOY_PORT=5985`
|
||
- `KK_DEPLOY_ROOT=C:\kkFileView-5.0`
|
||
- `KK_DEPLOY_HEALTH_URL=http://127.0.0.1:8012/`
|
||
|
||
下面这些非敏感参数可以通过 workflow env 或 GitHub Variables 覆盖;未配置时会使用默认值:
|
||
- `KK_DEPLOY_REPO_URL=https://github.com/kekingcn/kkFileView.git`
|
||
- `KK_DEPLOY_BRANCH=master`
|
||
- `KK_DEPLOY_SOURCE_ROOT=C:\kkFileView-source`
|
||
- `KK_DEPLOY_JAVA_HOME=C:\Program Files\jdk-21.0.2`
|
||
- `KK_DEPLOY_GIT_EXE=C:\kkFileView-tools\git\cmd\git.exe`
|
||
- `KK_DEPLOY_MVN_CMD=C:\kkFileView-tools\maven\bin\mvn.cmd`
|
||
- `KK_DEPLOY_MAVEN_SETTINGS=`
|
||
|
||
如果服务器到 GitHub 的拉取速度不稳定,也可以把 `KK_DEPLOY_REPO_URL` 改成你自己的 Git 镜像地址。
|
||
如果服务器访问 Maven Central 不稳定,也可以通过 `KK_DEPLOY_MAVEN_SETTINGS` 指向自定义 `settings.xml`,切换到就近镜像仓库。
|
||
|
||
## 服务器前置环境
|
||
|
||
服务器需要具备以下工具:
|
||
|
||
- Git for Windows(推荐安装在 `C:\kkFileView-tools\git`)
|
||
- Apache Maven 3.9.x(推荐安装在 `C:\kkFileView-tools\maven`)
|
||
- JDK 21(当前线上已存在:`C:\Program Files\jdk-21.0.2`)
|
||
|
||
## Workflow
|
||
|
||
新增 workflow:`.github/workflows/master-auto-deploy.yml`
|
||
|
||
- 触发条件:`push` 到 `master`,或手动 `workflow_dispatch`
|
||
- 部署方式:WinRM + 服务器源码同步 + 服务器本机 Maven 编译 + jar 替换/回滚
|