2.8 KiB
B9 自动部署
Gitea workflow 位于 .gitea/workflows/deploy-b9.yml。
触发方式
- 推送
b9分支:构建正式版,同步到s3://luxsin-app-bucket/b9/v2/,刷新 CloudFrontEUS4XQ8Y0W2ZV的/b9/v2/*。 - Actions 手动运行:可选择
prod或test;测试环境同步到s3://luxsin-app-bucket/b9/test/,刷新/b9/test/*。 - 使用现有
windows-crossRunner(Linux x64 Docker 镜像),安装 Node.js 24、pnpm 11.5.2 和 AWS CLI。 - 同一时间只运行一个 B9 部署,避免多个同步任务互相覆盖。
一次性配置
在实际托管 b9 分支的 Gitea 仓库中,进入「设置 → Actions」:
Secrets
| 名称 | 用途 |
|---|---|
AWS_ACCESS_KEY_ID |
部署账号的访问密钥 ID |
AWS_SECRET_ACCESS_KEY |
对应的访问密钥 |
AWS_SESSION_TOKEN |
仅临时凭据需要;过期后需要更新整组凭据 |
不要提交本机 .aws 或把密钥写入 workflow。部署身份应仅有目标桶 b9/v2/、b9/test/ 前缀所需的同步读写删除权限,以及指定 CloudFront 分配的创建失效权限;若存储桶使用自定义 KMS 加密,还需相应 KMS 权限。
Variables
| 名称 | 用途 |
|---|---|
AWS_REGION |
填写现有 S3 存储桶所在区域,必填 |
VITE_AI_API_URL |
生产可访问的 AI 服务地址,可选;未填时使用应用内置默认地址 |
Runner 必须能领取此仓库的任务,并能够访问 GitHub Actions、npm、AWS CLI 下载站、S3 和 CloudFront API。当前本地 origin 为 https://repo.luxsin.com.cn/audio/controller-v2.git,需要在这台 Gitea 对应仓库配置 Runner 和上述参数;旧 Gitea 的仓库级 Runner 不会自动跨实例生效。
部署规则
复用 scripts/deploy.sh,CI 执行 DEPLOY_PROJECT_NAME=b9 bash scripts/deploy.sh prod -yr。-y 跳过人工确认,-r 刷新缓存;本地未加 -y 时仍需确认。
默认上传 images,与现有脚本默认行为一致。aws s3 sync --delete 会删除目标前缀中本次构建不存在的对象,部署前会校验入口文件避免上传空目录。需要排除 images 的手工部署仍可使用 -i。
每次部署会产生 S3 请求和 CloudFront 缓存失效请求,按账号实际用量计费。workflow 不上传或读取本机未跟踪的 .env,构建所需公开配置应放入 Actions Variables。
分支与型号目录
main 对应 x8,其余已知型号分支 x9、b9、bd9、bh9 使用分支名作为目录。CI 会设置 DEPLOY_PROJECT_NAME,构建路径与部署目标保持一致;本地脚本也支持相同映射。
目前自动触发范围仍仅为 b9,未扩大其他分支的自动生产部署。其他分支需包含对应 workflow,启用前需确认部署范围;不要覆盖各分支的型号专用代码。AWS 权限也应按实际启用的型号前缀配置。