Skip to content

Commit 0925fe7

Browse files
committed
FIX: 修复 CI 与 Release 工作流失败
1 parent 4665c8a commit 0925fe7

3 files changed

Lines changed: 29 additions & 6 deletions

File tree

.github/workflows/ci.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
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
@@ -55,7 +55,10 @@ jobs:
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 }}

.github/workflows/release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff 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}")

TASKS.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,28 @@
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 测试隔离不足,不是业务实现回归。

0 commit comments

Comments
 (0)