Repository navigation
githup v1.2.15
githup v1.2.15(versionCode 1002015)
打包成功却看不到 APK —— 硬断言产物存在 + 空态给出原因。
实测数据
githup 库最近 40 次运行里,official-release 跑了 37 次,
其中 8 次「conclusion = success 但 artifacts = 0」
(#100 #97 #96 #86 #83 #82 #78 #73)。
绿勾出现了 8 次,下面一个 APK 都没有。
根因一:continue-on-error 让失败伪装成成功
- name: Build Release APK
id: b
continue-on-error: true # ← 为的是失败时仍能提交日志gradlew 失败时这条被"容错",整个 job 依然是绿色对勾。
用户看到「打包成功」,点进去却没有 APK。
根因二:if-no-files-found: warn
- name: Upload artifact
with:
if-no-files-found: warn # ← 匹配不到文件也只是警告产物路径匹配不到时步骤照样绿,又一次"成功但没东西"。
根因三:App 里没产物时整块消失
function artifactsBlock(artifacts) {
if (!artifacts.length) return ''; // ← 页面一片空白
}看的人只会以为"加载坏了",想不到是这次运行压根没上传产物。
而且 artifacts 请求失败时 .catch 静默返回空数组 ——
「确实没有」和「没查到」混为一谈,提示必然是错的。
改法
-
新增
Assert APK produced(硬断言)- 构建退出码非 0 → exit 1
- 找不到 APK → 打印目录树 + exit 1
- 小于 300KB → 判为残缺 + exit 1
绿色从此只代表一件事:确实产出了 APK。
-
Upload artifact 收紧
if-no-files-found: warn→errorretention-days: 90显式写死(不依赖可被改动的仓库默认值)
-
新增
Write APK summary
把文件名 / 大小 / sha256 / 证书指纹写进 Job Summary,
点开运行一眼可见,不用翻日志。 -
App 侧空态给出原因(page-detail.js)
- 没产物 → 说明「只有用了 upload-artifact 才会出现;
提交到分支或发到 Release 不会显示」 - 请求失败 → 单独提示「没查到产物列表(请求失败)」
两块不再混为一谈。
- 没产物 → 说明「只有用了 upload-artifact 才会出现;
为什么有些运行永远不会出现产物
比如那种只有 Download + Commit 到分支的工作流 ——
它没有 upload-artifact。GitHub 只在用了 upload-artifact 时才
生成产物区。以前这种运行在 App 里就是一片空白;现在会明说原因。
校验信息
| 项目 | 类型 | 完整值 |
|---|---|---|
| 源码指纹 | 源码快照 SHA-256 | c313a6029e0ab66290cb20339a0af4517f876101b7f333a29c8e8fa379e26026 |
| 签名指纹 | 证书 SHA-256 | 863dd1cd3752e59165e152bc4ab35fde478fcd296d724a6bc58cec0368184927 |
| APK 校验值 | 安装包 SHA-256 | 667f1506b36619abda4d0f7519b564091bd06c7739c8439f788fba5e7dc459c7 |
| 构建提交 | Commit SHA | 57dcfbc43167d68f318ba5dbc09f7581357bb641 |
均为完整值,可在表格里整段选中复制,与官方公布的比对一致再安装。