修复 release 渠道 macOS 测试的默认环境隔离
隔离默认渠道测试中的 AGC_UPDATE_CHANNEL 环境变量 补充 Jenkins 渠道参数进入 Node 测试进程的排障记录
This commit is contained in:
@@ -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: 异步生成完成结果无法绑定到 operationId:External Editor 旧同步结果的图集切片超过 64 个」,而平台侧这次生成**其实已经成功并切完图**(任务账本耗时正常、`assetId` 为空、没有任何素材落盘,付费产物被丢)。
|
||||
|
||||
Reference in New Issue
Block a user