这里附上最新的工作流程,以防您想查看: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)
使用
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
每次都帮助构建干净,这样就不存在损坏的文件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