发布指南
本文介绍了与项目发布相关的一些注意事项,减少发布时可能出现的问题。
运行环境
下表列出了程序运行的所有环境,发布前需要明确发布的目标环境和使用的配置文件。
| 名称 | 网络 | 配置文件 | 说明 |
|---|---|---|---|
| 开发环境 | 本地 | 后端:application-dev.yml 前端:.env.development | 本地开发 |
| 测试环境 | 外网 | 后端:application-test.yml 前端:.env.test | 联调测试,服务允许中断 |
| 预览环境 | 内网 | 后端:application-preview.yml 前端:.env.preview | 用户测试,服务相对稳定 |
| 生产环境 | 内网 | 后端:application-prod.yml 前端:.env | 生产使用 |
配置文件
由于各环境配套的基础服务存在差异,因此发布前的关键一步就是获取服务信息,修改配置文件。
服务清单
项目负责人根据项目实际情况,报告使用的基础服务清单。管理员收到清单后,开放权限、下发配置信息。 服务清单格式建议如下表所示:
| 服务 | 是否使用 |
|---|---|
| PostgreSql | √ |
| Redis | √ |
| UAC | √ |
| MinIO | |
| XXL-JOB | |
| 邮件 | |
| 企微通知 |
提示
PostgreSql、Redis、UAC 为系统运行必需的服务,管理员会始终下发相应配置信息。
接收到配置信息后,项目负责人通知开发人员更新到配置文件中。如果配置文件不存在,则应根据运行环境所述内容创建对应的配置文件。
后端配置
- 端口:除开发环境外,其它环境必须使用 80 端口。配置项为
server.port - JWT:各环境不应使用相同密钥,必须分别配置。配置项为
token.secret - UAC:配置节点为
cas - 如果开发环境使用测试机资源,则测试环境可使用相同的基础服务配置。
- 生产环境的核心基础服务(如数据库、redis)由运维人员负责,并以外部文件形式映射到
application.yml,其优先级高于application-prod.yml。开发人员仅需修改其它非核心配置。
Dockerfile
正常情况下无需修改,如果后端修改了 artifactId 配置,则需要同步修改此文件中的 hzcc-biz-api.jar。
前端配置
后端发布成功后,联系管理员获取接口访问地址,修改 VUE_APP_API_BASE_BASIC_URL 配置项。注意仅需要 /api 之前的部分。
子模块
项目应使用 Git 子模块引用开发框架,需要确认使用了相对路径和正确的分支。
yaml
# 后端 .gitmodules
[submodule "framework"]
path = framework
url = ../hzcc-framework-java.git
branch = v1.8.1
# 前端 .gitmodules
[submodule "src/framework"]
path = src/framework
url = ../HZCC.Framework.Front.git
branch = v2.3.0注意
因为升级框架版本而切换子模块分支时,需要手动修改 branch 的值。
发布机制
各环境发布机制略有差异,详细情况如下表所示:
| 环境 | 模式 | 说明 |
|---|---|---|
| 测试环境 | 自动 | 定时检查最新代码并自动发布,如超过 10 分钟未发布请联系管理员。 |
| 预览环境 | 人工 | 项目负责人根据需要进行自助发布。 |
| 生产环境 | 人工 | 项目负责人发起流程,审批通过后由专员实施。 |