# GitHub Actions 说明 ## API:Docker Build and Deploy - **工作流文件**: [docker-build-deploy.yml](docker-build-deploy.yml) - **测试 job**:在构建镜像前于 `api/` 下执行 `uv sync --dev` 与 `pytest`。 - **Secrets**:预发无前缀 `SSH_*` / `DEPLOY_PATH`、生产 `PROD_*`、镜像 `ALIYUN_CR_*` — 详见 [SETUP.md](SETUP.md)。 - **分支 / Tag**:`main` → Staging 服务器;语义化 tag `v*.*.*` → Production 服务器;路径过滤为 `api/**` 与本 workflow。 - **手动补跑**:`workflow_dispatch` 仅支持 `main` / `master`(Staging)或 `vMAJOR.MINOR.PATCH` tag(Production)。其它 ref 会在测试与构建前失败。 头部注释与 `docker-build-deploy.yml` 内说明为最新权威描述。 ## Android Release 构建签名 APK:见本文件历史版本中 Android 小节或仓库内 app 模块文档(若已迁移)。 ## App Expo Deploy - **工作流文件**:[app-expo-deploy.yml](app-expo-deploy.yml) - **自动触发**:`main` → `stage`,`use-env staging`(`app-expo/env/staging` → `.env`)构建 APK artifact;`v*.*.*` tag → `prod`,`env/production` 并创建 GitHub Release。 - **手动触发**:`dev` 可用于内部测试包;`stage` 只允许在 `main` / `master` 上补跑;`prod` 需要选择 `vMAJOR.MINOR.PATCH` tag,或在 `main` / `master` 上填写语义化 `version`。 - **产物规则**:Staging APK 仅上传为 GitHub Actions artifact;Production APK 才创建正式 GitHub Release。 - **版本号**:CI 在 prebuild / Gradle 前注入 `APP_VERSION`(tag 或 `package.json`)与 `APP_BUILD_NUMBER`(`GITHUB_RUN_NUMBER`);`app.config.ts` 与 About 页读取同一来源,无需手改 `app.config.ts` 里的 `version`。