GitHub CI 工作流程在构建 Android 应用程序时运行约 10 分钟后不断收到关闭信号

问题描述 投票:0回答:1

这里附上最新的工作流程,以防您想查看:https://github.com/pixincreate/Signal/actions/runs/6063724616/job/16451391074

我已经尝试构建自己的 Signal 应用程序版本大约两周了,但没有成功。当我尝试在我的 PC 上构建它时,构建成功并且运行没有任何问题。我什至还能够生成签名的版本。

但它在 GitHub Actions 上讲述了一个不同的故事,即工作流运行 10 多分钟后,它不断收到关闭信号。我一直在观察接收该信号的位置,并且它总是在找不到

proguard-webrtc
文件之后或之前退出。但据我所知,这与工作流程收到关闭信号无关。

我真的不知道是什么导致了这个问题。

最初我以为是我的更改导致构建失败,但事实证明并非如此。我尝试用 0 处更改来构建应用程序,但添加了 CI 工作流程,大约 10 - 15 分钟后,它仍然在通常会关闭的同一位置收到关闭信号。

可以获得有关我哪里出错或遗漏任何内容的详细日志..

我对我的工作流程非常有信心,因为它看起来和工作都非常好(1 个月前它的工作效果与预期完全一样)

编辑:

在我将 Ubuntu 运行程序从最新版本降级到 20.04 后,我开始获得有关所发生情况的清晰日志。 工作流程运行在这里:https://github.com/pixincreate/Signal/actions/runs/6063993284/job/16451941378

例外是:

org.gradle.launcher.daemon.client.DaemonDisappearedException: Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)
android github github-actions workflow
1个回答
0
投票

使用

ubuntu-latest
显示没有正确的日志,这就是为什么几乎不可能调试它。将运行程序降级至
ubuntu-20.04
后,日志开始按预期显示,这有助于 RCA(根本原因分析)。

当存在某种性能问题或 CI 服务器没有足够的能力并行运行多个事物时,会导致以下异常。

org.gradle.launcher.daemon.client.DaemonDisappearedException: Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)

为了解决这个问题,在工作流程中,必须进行一些优化,例如:

  • 在命令中删除
    --parallel
    并添加
    clean
    ./gradlew clean assemblePlayProdRelease --stacktrace
    
    每次都帮助构建干净,这样就不存在损坏的文件
  • 此外,gradle 优化也有助于解决问题:
    env:
      GRADLE_OPTS: -Dkotlin.incremental=false -Dorg.gradle.jvmargs="-Xmx4g -XX:MaxMetaspaceSize=2g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8"
    

FYI, https://github.com/pixincreate/Signal/actions/runs/6064593081/job/16453188633
© www.soinside.com 2019 - 2024. All rights reserved.