Skip to content

githup v1.2.15

Choose a tag to compare

@Buwrt Buwrt released this 01 Oct 05:24
· 451 commits to main since this release

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 静默返回空数组 ——
「确实没有」和「没查到」混为一谈,提示必然是错的。

改法

  1. 新增 Assert APK produced(硬断言)

    • 构建退出码非 0 → exit 1
    • 找不到 APK → 打印目录树 + exit 1
    • 小于 300KB → 判为残缺 + exit 1

    绿色从此只代表一件事:确实产出了 APK。

  2. Upload artifact 收紧

    • if-no-files-found: warn → error
    • retention-days: 90 显式写死(不依赖可被改动的仓库默认值)
  3. 新增 Write APK summary
    把文件名 / 大小 / sha256 / 证书指纹写进 Job Summary,
    点开运行一眼可见,不用翻日志。

  4. App 侧空态给出原因(page-detail.js)

    • 没产物 → 说明「只有用了 upload-artifact 才会出现;
      提交到分支或发到 Release 不会显示」
    • 请求失败 → 单独提示「没查到产物列表(请求失败)」

    两块不再混为一谈。

为什么有些运行永远不会出现产物

比如那种只有 Download + Commit 到分支的工作流 ——
它没有 upload-artifact。GitHub 只在用了 upload-artifact 时才
生成产物区。以前这种运行在 App 里就是一片空白;现在会明说原因。


校验信息

项目 类型 完整值
源码指纹 源码快照 SHA-256 c313a6029e0ab66290cb20339a0af4517f876101b7f333a29c8e8fa379e26026
签名指纹 证书 SHA-256 863dd1cd3752e59165e152bc4ab35fde478fcd296d724a6bc58cec0368184927
APK 校验值 安装包 SHA-256 667f1506b36619abda4d0f7519b564091bd06c7739c8439f788fba5e7dc459c7
构建提交 Commit SHA 57dcfbc43167d68f318ba5dbc09f7581357bb641

均为完整值,可在表格里整段选中复制,与官方公布的比对一致再安装。