ci(deploy-client): iOS 上传加超时看门狗 + iOS 失败不阻断发版
Deploy Client / build-windows (push) Successful in 3m58s
Deploy Client / build-client-web (push) Successful in 6m17s
Deploy Client / build-macos (push) Successful in 13m39s
Deploy Client / build-android (push) Successful in 7m17s
Deploy Client / build-ios (push) Successful in 6m42s
Deploy Client / release-deploy-client (push) Successful in 11m50s

1.1.13 发版事故复盘:build-ios 的 altool 上传静默卡死数分钟无输出,超
runner 僵尸超时被 SIGKILL 判失败(软失败 else 分支没机会跑);且 build-ios
被 release-deploy 硬 needs → 连带 web/mac/win/android 整体没部署。

- compile-ios.sh: altool 上传套后台看门狗(本机无 timeout/coreutils),超
  420s 先 TERM 再 KILL,保证永远在僵尸窗口内干净收尾,失败只告警不阻断。
- deploy-client.yml: build-ios 加 continue-on-error;release-deploy 改
  if: always() 只校验 4 个真实平台成功即部署,iOS 真正不阻塞。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bupi8Kdqkfx2N5acFsHTx5
This commit is contained in:
wangjia
2026-08-27 22:41:28 +08:00
parent 7025ccd1b5
commit 848a9ee2c6
2 changed files with 30 additions and 4 deletions
+11
View File
@@ -98,6 +98,9 @@ jobs:
build-ios:
needs: build-android
runs-on: mac
# iOS TestFlight 上传易抖/易卡,按 CLAUDE.md「iOS 不阻塞发版」:本 job 失败
# 不拖垮整个 run,更不阻断下面的 release-deploy(它已改为只校验 4 个真实平台)。
continue-on-error: true
env:
PUB_HOSTED_URL: https://pub.flutter-io.cn
FLUTTER_STORAGE_BASE_URL: https://storage.flutter-io.cn
@@ -159,6 +162,14 @@ jobs:
release-deploy-client:
needs: [build-client-web, build-macos, build-android, build-ios, build-windows]
# iOS(build-ios)故意可失败:只要 4 个真实平台成功就照常发布部署。
# always() 保证 build-ios 失败时本 job 不被跳过;再逐个校验其余平台必须成功。
if: >-
${{ always()
&& needs.build-client-web.result == 'success'
&& needs.build-macos.result == 'success'
&& needs.build-android.result == 'success'
&& needs.build-windows.result == 'success' }}
runs-on: mac
env:
GOPROXY: https://goproxy.cn,direct