修复 AGC release 渠道 macOS 发布门禁被环境渠道带挂 #537

Closed
suzmii wants to merge 1 commits from fix/agc-release-gate-channel into master
Member

背景

release-mac 自 2026-09-24 起没有新版本。除 macOS 构建节点离线 5 天外,release 渠道的 macOS 发布在 Tauri 构建前的 node --test 门禁必挂(见 #536)。

改动

  • apps/ai-game-creator-shell/scripts/build-release.test.mjs:release stages Node before Tauri and injects its resource mapping only for bundles 的渠道读取改用 withEnv({ AGC_UPDATE_CHANNEL: undefined }) 隔离,让断言落在默认渠道身份上;非默认渠道不注入钩子的边界仍由「dev 渠道的 Windows 包注入改名迁移钩子,其它渠道与目标不注入」覆盖。
  • docs/project-memory/shared-memory/pitfalls.md:补记该形态第二次复发与现行隔离口径。

验证

  • 最新 master 7b04830a0 + npm ci 环境:
    • 修复前(master 原文件)AGC_UPDATE_CHANNEL=release node --test build-release.test.mjs cargo-features.test.mjs → # pass 43 # fail 1(Cannot read properties of undefined (reading 'nsis'))。
    • 修复后 AGC_UPDATE_CHANNEL=release / =dev / 未设置 → 三态均 44/44。
    • 发布阶段四条门禁命令整体在 release 渠道环境下全绿(6/6、6/6、44/44、6/6)。
  • npx prettier --check、npm run check:encoding(5130 文件)、check:doc-index(207 份)、git diff --check 通过。
  • commit 前的 lint-staged(eslint + prettier)通过。

影响范围

只改测试与共享记忆;不动生产脚本、Jenkinsfile 与发布产物。

后续(不在本 PR 内)

本 PR 只固定了这一条用例的输入,属于症状层修复;门禁设计本身的问题(唯一执行点在 mac 线、输入被渠道参数污染、跨平台失败半径错位)记录在 #542,需要按设计层方案另做,本 PR 不作为其解法。

关联:#536(事故本身尚未结案:还欠一次带 Jenkins 凭据的 release 补发与节点可用性加固)、#542(设计层)。

## 背景 `release-mac` 自 2026-09-24 起没有新版本。除 macOS 构建节点离线 5 天外,release 渠道的 macOS 发布在 Tauri 构建前的 `node --test` 门禁必挂(见 #536)。 ## 改动 - `apps/ai-game-creator-shell/scripts/build-release.test.mjs`:`release stages Node before Tauri and injects its resource mapping only for bundles` 的渠道读取改用 `withEnv({ AGC_UPDATE_CHANNEL: undefined })` 隔离,让断言落在默认渠道身份上;非默认渠道不注入钩子的边界仍由「dev 渠道的 Windows 包注入改名迁移钩子,其它渠道与目标不注入」覆盖。 - `docs/project-memory/shared-memory/pitfalls.md`:补记该形态第二次复发与现行隔离口径。 ## 验证 - 最新 master `7b04830a0` + `npm ci` 环境: - 修复前(master 原文件)`AGC_UPDATE_CHANNEL=release node --test build-release.test.mjs cargo-features.test.mjs` → `# pass 43 # fail 1`(`Cannot read properties of undefined (reading 'nsis')`)。 - 修复后 `AGC_UPDATE_CHANNEL=release` / `=dev` / 未设置 → 三态均 44/44。 - 发布阶段四条门禁命令整体在 release 渠道环境下全绿(6/6、6/6、44/44、6/6)。 - `npx prettier --check`、`npm run check:encoding`(5130 文件)、`check:doc-index`(207 份)、`git diff --check` 通过。 - commit 前的 `lint-staged`(eslint + prettier)通过。 ## 影响范围 只改测试与共享记忆;不动生产脚本、Jenkinsfile 与发布产物。 ## 后续(不在本 PR 内) 本 PR 只固定了这一条用例的输入,属于症状层修复;门禁设计本身的问题(唯一执行点在 mac 线、输入被渠道参数污染、跨平台失败半径错位)记录在 #542,需要按设计层方案另做,本 PR 不作为其解法。 关联:#536(事故本身尚未结案:还欠一次带 Jenkins 凭据的 release 补发与节点可用性加固)、#542(设计层)。
suzmii added 1 commit 2026-09-30 11:05:08 +08:00
修复 AGC release 渠道 macOS 发布门禁被环境渠道带挂
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m28s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m54s
Project CI / Backend tests (pull_request) Successful in 4m12s
Project CI / Frontend tests (pull_request) Successful in 2m38s
Project CI / Native shell tests (pull_request) Successful in 6m36s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m2s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m30s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m46s
Project CI / Repository checks (pull_request) Successful in 2m18s
733c646764
- build-release.test.mjs 的 NSIS 改名钩子用例改用 withEnv 清掉 AGC_UPDATE_CHANNEL,避免 release lane 必挂
- pitfalls 补记该形态第二次复发与隔离口径
Author
Member

已被 master 覆盖,关闭本 PR。

  • 同一缺陷已在 2026-09-30 12:00 由 master 39823b05c(修复 Jenkins release 渠道测试环境污染)用等价方式修掉:把该用例的渠道显式固定为 dev(resolveReleaseContext(['--target', windowsTarget], { AGC_UPDATE_CHANNEL: 'dev' }));同时/随后落地的 b7862288(移除 AGC 正式渠道产品名后缀)重写了同段断言。
  • 因此本 PR 与 master 在 apps/ai-game-creator-shell/scripts/build-release.test.mjs 上内容冲突(Gitea mergeable: false),改动已被覆盖,没有剩余价值。
  • 验证(master 干净 worktree + npm ci):五个门禁文件在 AGC_UPDATE_CHANNEL=release 下 62/62 通过,dev 对照 44/44 —— release 那条线的门禁已解封。
  • 结构性问题(唯一执行点在 mac 管线、缺"输入显式化"守卫)继续在 #542 跟踪。
已被 master 覆盖,关闭本 PR。 - 同一缺陷已在 2026-09-30 12:00 由 master `39823b05c`(修复 Jenkins release 渠道测试环境污染)用等价方式修掉:把该用例的渠道显式固定为 dev(`resolveReleaseContext(['--target', windowsTarget], { AGC_UPDATE_CHANNEL: 'dev' })`);同时/随后落地的 `b7862288`(移除 AGC 正式渠道产品名后缀)重写了同段断言。 - 因此本 PR 与 master 在 `apps/ai-game-creator-shell/scripts/build-release.test.mjs` 上内容冲突(Gitea `mergeable: false`),改动已被覆盖,没有剩余价值。 - 验证(master 干净 worktree + `npm ci`):五个门禁文件在 `AGC_UPDATE_CHANNEL=release` 下 62/62 通过,dev 对照 44/44 —— release 那条线的门禁已解封。 - 结构性问题(唯一执行点在 mac 管线、缺"输入显式化"守卫)继续在 #542 跟踪。
suzmii closed this pull request 2026-09-30 12:17:20 +08:00
Some checks are pending
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m28s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m54s
Project CI / Backend tests (pull_request) Successful in 4m12s
Project CI / Frontend tests (pull_request) Successful in 2m38s
Project CI / Native shell tests (pull_request) Successful in 6m36s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 9m2s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 9m30s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m46s
Project CI / Repository checks (pull_request) Successful in 2m18s

Pull request closed

Sign in to join this conversation.