修复 AGC release 渠道 macOS 发布门禁被环境渠道带挂 #537
@@ -941,7 +941,13 @@ test('--no-bundle 不预置 NSIS 工具链', async () => {
|
||||
});
|
||||
|
||||
test('release stages Node before Tauri and injects its resource mapping only for bundles', () => {
|
||||
const context = resolveReleaseContext(['--target', windowsTarget]);
|
||||
// 渠道从环境派生:Jenkins 的 release lane 会带着 AGC_UPDATE_CHANNEL=release 跑这条门禁,
|
||||
// 而 dev 改名钩子只注入默认(dev)渠道(见 createChannelConfig)。按「默认值测试必须隔离
|
||||
// 环境」的口径清掉渠道变量,断言才落在默认身份上;非默认渠道不注入钩子的边界由「dev 渠道
|
||||
// 的 Windows 包注入改名迁移钩子,其它渠道与目标不注入」覆盖。
|
||||
const context = withEnv({ AGC_UPDATE_CHANNEL: undefined }, () =>
|
||||
resolveReleaseContext(['--target', windowsTarget]),
|
||||
);
|
||||
const events = [];
|
||||
runTauriBuild(['--target', windowsTarget], context, {
|
||||
stageRuntime(target) {
|
||||
|
||||
@@ -204,6 +204,7 @@ Copy Artifact 插件在**非 SYSTEM 认证**下按「认证用户」判权:只
|
||||
- **处理(现行口径)**:断言默认渠道、默认目标等环境派生值的测试,必须用现有 `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`。
|
||||
- **复发(2026-09-30)**:`80bf54c3` 新增的 NSIS 改名钩子用例(`release stages Node before Tauri and injects its resource mapping only for bundles`)又直接读环境渠道、却无条件断言 dev 专属钩子,release 渠道的 macOS Job 再次在 Tauri 构建前失败(`Cannot read properties of undefined (reading 'nsis')`,2026-09-30 04:00 那次构建在 Checkout 后约 2 分钟即死、零产物),`release-mac` 因此停在旧版本;同一批门禁的其它用例与 dev 渠道都不受影响。按同一口径把该用例的 `resolveReleaseContext` 渠道读取裹进 `withEnv({ AGC_UPDATE_CHANNEL: undefined })` 后,`AGC_UPDATE_CHANNEL=release`、`=dev`、未设置三态均 44/44 通过。新写依赖渠道或目标的用例必须走 `withEnv`,不能依赖 `AGC_UPDATE_CHANNEL` / `AGC_BUILD_TARGET` 的默认值。
|
||||
|
||||
## 同一条链路两处上限不一致:平台合法产出被客户端整条丢弃
|
||||
|
||||
|
||||
Reference in New Issue
Block a user