File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 3939 test :
4040 runs-on : ubuntu-latest
4141 needs : analyze
42- timeout-minutes : 25
42+ timeout-minutes : 45
4343
4444 steps :
4545 - uses : actions/checkout@v4
5555 run : flutter pub get
5656
5757 - name : Run tests
58- run : flutter test
58+ # Ubuntu runner 上全量 widget/unit 测试并行收尾时,偶发出现
59+ # “全部测试通过但 flutter test 以 1 退出”的原生资源竞态。
60+ # 串行执行牺牲少量耗时,换取 SQLite/插件/Flutter tester 清理稳定性。
61+ run : flutter test --concurrency=1
5962
6063 build :
6164 needs : [analyze, test]
@@ -145,4 +148,4 @@ jobs:
145148 --dart-define=POSTHOG_HOST=${{ vars.POSTHOG_HOST }} \
146149 --dart-define=SUPABASE_URL=${{ vars.SUPABASE_URL }} \
147150 --dart-define=SUPABASE_PUBLISHABLE_KEY=${{ vars.SUPABASE_PUBLISHABLE_KEY }} \
148- --dart-define=GOOGLE_WEB_CLIENT_ID=${{ vars.GOOGLE_WEB_CLIENT_ID }}
151+ --dart-define=GOOGLE_WEB_CLIENT_ID=${{ vars.GOOGLE_WEB_CLIENT_ID }}
Original file line number Diff line number Diff line change @@ -352,7 +352,7 @@ jobs:
352352 SUPABASE_URL : ${{ vars.SUPABASE_URL }}
353353 SUPABASE_PUBLISHABLE_KEY : ${{ vars.SUPABASE_PUBLISHABLE_KEY }}
354354 GOOGLE_WEB_CLIENT_ID : ${{ vars.GOOGLE_WEB_CLIENT_ID }}
355- REVENUECAT_API_KEY_APPLE : ${{ secrets .REVENUECAT_API_KEY_APPLE }}
355+ REVENUECAT_API_KEY_APPLE : ${{ vars .REVENUECAT_API_KEY_APPLE }}
356356 run : |
357357 # 避免 Homebrew rsync 抢占(Apple toolchain 需要系统 rsync)
358358 export PATH="/usr/bin:/bin:/usr/sbin:/sbin:$PATH"
@@ -367,7 +367,7 @@ jobs:
367367 DART_DEFINES+=("--dart-define=POSTHOG_API_KEY=${POSTHOG_API_KEY}")
368368 fi
369369 if [[ -z "$REVENUECAT_API_KEY_APPLE" ]]; then
370- echo "ERROR: REVENUECAT_API_KEY_APPLE secret is required for iOS release builds." >&2
370+ echo "ERROR: REVENUECAT_API_KEY_APPLE repository variable is required for iOS release builds." >&2
371371 exit 1
372372 fi
373373 DART_DEFINES+=("--dart-define=REVENUECAT_API_KEY_APPLE=${REVENUECAT_API_KEY_APPLE}")
Original file line number Diff line number Diff line change 11# Echo Loop 任务清单
22
3- > 最后更新:2026-07-06(修复 GitHub CI Linux 测试失败 run 28764287226 )
3+ > 最后更新:2026-07-06(修复 Release iOS RevenueCat Apple key 变量来源 )
44> 当前焦点:Android 结束录音闪退(离线 ASR / Silero VAD)——** 仍未解决**
55
6+ ## 已完成:修复 Release iOS RevenueCat Apple key 变量来源
7+
8+ 最新 GitHub Actions ` Release ` run ` 28766561568 ` 中 Android release job 已成功完成 APK/AAB 构建与上传;iOS release job 失败在 ` Build iOS app (no codesign) ` ,日志显示 ` REVENUECAT_API_KEY_APPLE ` 为空并触发硬校验退出。根因是 Release workflow 的 iOS 步骤读取 ` ${{ secrets.REVENUECAT_API_KEY_APPLE }} ` ,而 RevenueCat public SDK API key 按项目约定配置在 GitHub repository variables,Android 步骤也已使用 ` ${{ vars.REVENUECAT_API_KEY_GOOGLE }} ` 。
9+
10+ - [x] ** 变量来源统一** :` .github/workflows/release.yml ` 的 iOS ` Build iOS app (no codesign) ` 步骤改为读取 ` ${{ vars.REVENUECAT_API_KEY_APPLE }} ` 。
11+ - [x] ** 错误文案同步** :缺失校验文案从 ` secret is required ` 改为 ` repository variable is required ` ,与 Android release 保持一致。
12+ - [x] ** 验证策略** :本次仅修改 GitHub Actions YAML 变量引用,不运行 Flutter 测试;最终通过性以下一次 Release run 为准。
13+
14+ ** 完成时间** : 2026-07-06
15+
16+ ## 已完成:修复 GitHub CI 全量测试通过后仍 exit 1
17+
18+ 最新 GitHub Actions ` CI ` run ` 28766555966 ` 中 ` analyze ` job 通过,` test ` job 日志显示 ` 3851 tests passed, 13 skipped ` ,但 ` flutter test ` 汇总成功后进程仍以 ` exit code 1 ` 结束,导致 ` build ` job 被跳过。日志没有新的断言失败、SIGSEGV 或 Dart 异常栈,符合 Ubuntu runner 上全量测试并行收尾阶段的原生资源竞态特征。
19+
20+ - [x] ** CI 测试并发收敛** :` .github/workflows/ci.yml ` 的 test job 改为 ` flutter test --concurrency=1 ` ,避免多个 ` flutter_tester ` 并行收尾时 SQLite/插件/测试进程资源清理互相影响。
21+ - [x] ** 超时放宽** :test job timeout 从 25 分钟提高到 45 分钟,覆盖串行执行后的耗时增长。
22+ - [x] ** 验证策略** :不在本地重复全量测试(用户确认上次本地全量正常);仅验证 Flutter test runner 支持 ` --concurrency ` 参数。最终通过性以下一次 GitHub Actions run 为准。
23+
24+ ** 完成时间** : 2026-07-06
25+
626## 已完成:修复 GitHub CI Linux 测试失败 run 28764287226
727
828最新 GitHub Actions ` CI ` run ` 28764287226 ` 中 ` analyze ` job 通过,` test ` job 失败:` 3850 tests passed, 3 failed, 13 skipped ` 。失败仍集中在 Ubuntu runner 的平台差异和录音权限 gate 测试隔离不足,不是业务实现回归。
You can’t perform that action at this time.
0 commit comments