修复 release 渠道 macOS 测试的默认环境隔离

隔离默认渠道测试中的 AGC_UPDATE_CHANNEL 环境变量
补充 Jenkins 渠道参数进入 Node 测试进程的排障记录
This commit is contained in:
2026-09-22 17:55:12 +08:00
parent 4990dae829
commit 4d45afbd6e
2 changed files with 21 additions and 11 deletions
@@ -645,17 +645,19 @@ test('Windows remains the default and explicit Windows overrides macOS environme
test('no-bundle smoke skips version writes and manifest generation', async () => {
const steps = [];
await buildRelease(['--no-bundle', '--target=aarch64-apple-darwin'], {
prepareVersion: () => {
steps.push('version');
},
build: (_args, context) => {
steps.push(context.channel);
},
generateManifest: () => {
steps.push('manifest');
},
});
await withEnv({ AGC_UPDATE_CHANNEL: undefined }, () =>
buildRelease(['--no-bundle', '--target=aarch64-apple-darwin'], {
prepareVersion: () => {
steps.push('version');
},
build: (_args, context) => {
steps.push(context.channel);
},
generateManifest: () => {
steps.push('manifest');
},
}),
);
assert.deepEqual(steps, ['dev']);
});
@@ -50,6 +50,14 @@ Copy Artifact 插件在**非 SYSTEM 认证**下按「认证用户」判权:只
`Genarrative-Manual-Build-And-Deploy``DEPLOY_TARGET=release` 只控制 Stdb / API / Web 全量发布,不会自动成为 AGC 的 `AGC_UPDATE_CHANNEL`。2026-09-21 的手工发布 #10 就因此让 Windows #107 与 macOS #16 使用默认 `dev`,把 `0.1.95` 上传到 `agc/dev-win``agc/dev-mac`,而 `agc/release-win/latest.json``agc/release-mac/latest.json` 保持 404。现行口径:手工入口按 `release -> release``development -> dev` 同时给 Windows 与 macOS AGC Build 传 `AGC_UPDATE_CHANNEL`;补发已烧号的同一版本时用相同 `AGC_RELEASE_VERSION` 直接重跑两条 AGC Job,不重新发号。OSS 发布对象是 `agc/<channel>-win|mac/`,不存在 `agc/release/` 这一层。
## Jenkins 渠道参数会进入 Node 测试进程,默认值测试必须隔离环境
- **现象**release 渠道的 macOS Job 在 Tauri 构建前的 `build-release.test.mjs` 失败,唯一差异是 `no-bundle smoke skips version writes and manifest generation` 期望 `dev`、实际得到 `release`;构建尚未进入 Rust/Tauri 编译。
- **原因**Jenkins Job 参数 `AGC_UPDATE_CHANNEL=release` 会成为子进程环境变量,而该测试直接依赖未设置的默认渠道,却只显式传了 `--target``--no-bundle`
- **处理(现行口径)**:断言默认渠道、默认目标等环境派生值的测试,必须用现有 `withEnv` 显式清除相关变量;构建入口继续按 `AGC_UPDATE_CHANNEL` 选择渠道,不为迁就测试改生产逻辑。
- **验证**:用 `AGC_UPDATE_CHANNEL=release node --test apps/ai-game-creator-shell/scripts/build-release.test.mjs apps/ai-game-creator-shell/scripts/cargo-features.test.mjs` 复现并验证修复,未设置变量时也必须通过。
- **关联**`apps/ai-game-creator-shell/scripts/build-release.test.mjs``jenkins/Jenkinsfile.ai-game-creator-shell-macos-build`
## 同一条链路两处上限不一致:平台合法产出被客户端整条丢弃
- 现象:客户端报「生成素材失败:platform-generation-result-unknown: 异步生成完成结果无法绑定到 operationIdExternal Editor 旧同步结果的图集切片超过 64 个」,而平台侧这次生成**其实已经成功并切完图**(任务账本耗时正常、`assetId` 为空、没有任何素材落盘,付费产物被丢)。