Skip to content

Commit c72e34c

Browse files
author
Asher
committed
fix(ci): aliyun 502 Bad Gateway 修复 — google()/mavenCentral() 优先于 aliyun 镜像
三次复盘 (CI run 26210555137 commit 462530b 仍 failure) - 用 GITHUB_TOKEN curl actions/jobs/<id>/logs 拉到完整日志, 与 patch 完全无关,根因是 aliyun mirror 502: Could not resolve com.google.code.gson:gson:2.11.0 > Could not parse POM https://maven.aliyun.com/repository/public/... > Received status code 502 from server: Bad Gateway > There are 68 more failures with identical causes. - aliyun 在 buildscript.repositories / allprojects.repositories 排在 google() / mavenCentral() 之前,GitHub Actions runner 在境外访问 aliyun CDN 偶发 502,Gradle 不自动 fallback,整链 68 个依赖同时挂。 - 本机一直走 aliyun 命中缓存,制造"本地 / CI 行为分裂"假象。 修复 - android/build.gradle 把 google() / mavenCentral() 提到 aliyun 之前 作为主源,aliyun 镜像降级为国内开发机的兜底/加速。 - 境外 CI runner 走官方源;国内开发机首选官方源、超时再走 aliyun。 文档 - harness/regression/known-issues.md 新增 KI-021(P1,已修复关闭)。 - harness/iteration/CHANGELOG-AI.md 顶部追加三次复盘条目。 测试 - npm test → 4 passed / 1 skipped / 0.336s。 - GetDiagnostics → 0 issues。
1 parent 462530b commit c72e34c

3 files changed

Lines changed: 19 additions & 4 deletions

File tree

android/build.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ buildscript {
1010
kotlinVersion = "2.1.20"
1111
}
1212
repositories {
13+
google()
14+
mavenCentral()
1315
maven { url "https://maven.aliyun.com/repository/google" }
1416
maven { url "https://maven.aliyun.com/repository/public" }
1517
maven { url "https://maven.aliyun.com/repository/gradle-plugin" }
16-
google()
17-
mavenCentral()
1818
}
1919
dependencies {
2020
classpath("com.android.tools.build:gradle")
@@ -25,11 +25,11 @@ buildscript {
2525

2626
allprojects {
2727
repositories {
28+
google()
29+
mavenCentral()
2830
maven { url "https://maven.aliyun.com/repository/google" }
2931
maven { url "https://maven.aliyun.com/repository/public" }
3032
maven { url "https://maven.aliyun.com/repository/gradle-plugin" }
31-
google()
32-
mavenCentral()
3333
maven { url "https://www.jitpack.io" }
3434
}
3535
}

harness/iteration/CHANGELOG-AI.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,20 @@
5252
- **发布动作(最终)**
5353
- 二次 commit 干净 patch + KI-019 增强 + checklist §8.1 强化。
5454
- 删本地 v5.0.0 tag → 重打指向新 commit → `git push origin v5.0.0 --force` 第二次触发 CI。
55+
- **三次复盘(CI run `26210555137` 仍 failure,commit `462530b`**
56+
-`GITHUB_TOKEN` 直接 curl `actions/jobs/<id>/logs` 拉到完整 step 8 日志,**与 patch 完全无关**
57+
```
58+
Could not resolve com.google.code.gson:gson:2.11.0
59+
> Could not parse POM https://maven.aliyun.com/repository/public/com/google/code/gson/gson/2.11.0/gson-2.11.0.pom
60+
> Received status code 502 from server: Bad Gateway
61+
> There are 68 more failures with identical causes.
62+
```
63+
- 真因:[android/build.gradle](../../android/build.gradle) 的 `buildscript.repositories` / `allprojects.repositories` 把 `maven.aliyun.com` 三个镜像放在 `google()` / `mavenCentral()` **之前**。GitHub Actions runner 在境外访问 aliyun CDN 偶发 502 Bad Gateway,Gradle 不会自动 fallback 到下一个 repo,导致 68 个依赖(含 `com.google.code.gson:gson:2.11.0` `gradle-plugin` 链路)同时挂。本机一直走 aliyun 命中缓存所以无感,制造"本地 / CI 行为分裂"假象。
64+
- 修复:[android/build.gradle](../../android/build.gradle) 把 `google()` / `mavenCentral()` 提到 aliyun 之前作为主源;aliyun 镜像降级为国内开发机的兜底/加速。境外 CI runner 走官方源;国内开发机首选官方源、超时再走 aliyun(实际开发体验依赖国内梯子或 aliyun 缓存,影响可接受)。
65+
- 新增 **KI-021**(P1,已修复关闭)登记此事件 + 修复方案;后续保留作为发版排错经验。
66+
- **发布动作(第三次最终)**:
67+
- 三次 commit:`android/build.gradle` repos 顺序调整 + KI-021 登记。
68+
- 删本地 v5.0.0 tag → 重打指向新 commit → `git push origin v5.0.0 --force` 第三次触发 CI。
5569
5670
## 2026-05-21 — 发布 v5.0.0:APK 更新链接审核 + 浏览器跳转加固 + 版本号升级 ✅
5771
- **触发**:用户指令"现在的 apk 更新下载链接是跳转到 github release 吗?如果不是,就该跳转到 release,同时补审核现在的 apk 配置是否能正常打开浏览器跳转,完事后打新的 tag v5.0.0,提交推送更新"+追问"项目也要升级版本号"。

harness/regression/known-issues.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
| KI-017 | P2 | [scripts/check-package-age.js](../../scripts/check-package-age.js)`git+https://...` / URL / `file:` 形式的依赖一律返回 `null` → status `skip`,覆盖了 [package.json](../../package.json) 里 3 个 fork 的 git 依赖(react-native-i18n / react-native-spinkit-fix-new / react-native-version-number-fix-new),15 天冷却红线对它们形同虚设。同时 `execSync('npm view ...')` 用 shell 字符串拼接,遇到 `>=1.0.0 <2.0.0` 这种含空格的复合 range 会被 shell 解析错乱。 | 0.85.0 | 当前 3 个 git 依赖均为长期托管 fork,短期内不动;其它依赖均为 exact / `^semver` 形态,不命中危险 range | TBD |`execFileSync` 数组形式 + git+ 来源走 GitHub API commit author date 兜底 |
1717
| KI-018 | P3 | 仓库根 [build.gradle](../../android/build.gradle)[android/init.gradle](../../android/init.gradle) 都声明了 aliyun mirror,存在重复定义;`init.gradle` 没有被任何脚本(如 [scripts/use-node.sh](../../scripts/use-node.sh))默认通过 `--init-script` 注入,需要开发者手动 `./gradlew --init-script android/init.gradle <task>` 才能生效 | 0.85.0 | 当前 `build.gradle` 内的 aliyun mirror 已经覆盖主链路;`init.gradle` 仅作可选兜底 | TBD | 二选一:要么删掉 `init.gradle`,要么写到 `gradle.properties` `org.gradle.daemon.idletimeout` 旁的 `--init-script` 默认注入脚本 |
1818
| KI-020 | P3 | [.github/workflows/ci.yml](../../.github/workflows/ci.yml) 的 Build job 与 Generate APK job 都跑 `npx react-native build-android --mode=release`,RN 0.85 默认走 `bundleRelease`(不触发 `verifyReleaseResources`),所以 patch 损坏 / lib 资源问题在 bundle 路径下被静默吞掉,只有 release 路径下 `assembleRelease` 才报错。建议把 `Build` job 也改成跑 `:app:assembleRelease` 或追加一步 `:react-native-spinkit-fix-new:verifyReleaseResources :react-native-version-number-fix-new:verifyReleaseResources` 强制覆盖 | 0.85.0 | 暂用本地 `assembleRelease` 在发版前做闸口;KI-019 修复后两条线一致 | TBD | 后续把 CI 步骤合并 / 加 verifyReleaseResources 显式调用 |
19+
| KI-021 | P1 | [android/build.gradle](../../android/build.gradle)`buildscript.repositories` / `allprojects.repositories``maven.aliyun.com` 镜像放在 `google()` / `mavenCentral()` **之前**,GitHub Actions runner 在境外访问 aliyun CDN 偶发 502 Bad Gateway(CI run 26210555137 实证:`Could not resolve com.google.code.gson:gson:2.11.0``Received status code 502`,叠加 68 个相同失败)。aliyun 一旦 502,Gradle 不会自动 fallback 到下一个 repo,导致整个构建挂掉 | 0.85.0 | **已修复**:把 `google()` / `mavenCentral()` 提到 aliyun 之前作为主源,aliyun 镜像降级为国内开发机的兜底/加速。境外 CI runner 走官方源、国内开发机仍能命中 aliyun 缓存 | AI | 2026-05-21 |
1920

2021
## Closed
2122

0 commit comments

Comments
 (0)