Github Actions 使用自托管 Runner 与在相同系统上本地运行相比速度慢的问题

160次阅读
没有评论

问题描述

在使用 Github Actions 时遇到了一个问题:在使用自托管 Runner 运行工作流时,耗时约为1小时40分钟,甚至有时候任务无法完成;而在相同系统上本地运行相同的操作,只需要约15分钟。用户确认代码相同,构建过程也没有差异。用户的上下文是通过命令行从 Unity 导出 iOS Xcode 项目。
用户想了解这种巨大的差异可能是什么原因,尤其是作为初次接触 CI/CD 和 DevOps 的新手,希望能够理解这背后的原因。尽管尝试过在谷歌上搜索,但未能找到解答。

解决方案

以下是解决问题的方法,具体操作请根据你的情况进行调整。

识别性能瓶颈

首先,要解决这个问题,我们需要识别造成构建过程变慢的性能瓶颈。你已经提到构建过程变慢,但还需要更详细的信息来找到确切的问题。以下步骤可以帮助你更好地诊断问题:

  1. 查看日志:在你的工作流执行期间,详细查看日志输出。检查日志以确认是否有特定步骤花费了大量时间。

  2. 资源利用情况:检查构建期间的 CPU 和内存利用情况。这可以帮助你确定是否存在资源不足的问题。

  3. 网络访问:确认工作流是否在下载依赖项或其他网络操作时变慢。特别关注网络访问速度和响应时间。

增加自托管 Runner 资源

考虑到你在 Mac Mini M2 上使用自托管 Runner,你可以尝试增加 Runner 的资源配置,以提高构建性能。以下是一些可能的步骤:

  1. 增加 CPU 和内存:进入 Github 仓库的设置,找到 Actions 选项,然后在自托管 Runner 部分修改 Runner 的配置。尝试为 Runner 分配更多的 CPU 核心和内存资源。

  2. 修改构建环境:如果你的构建脚本支持,你可以尝试调整构建过程的并行度或其他环境配置,以更好地利用 Runner 的性能。

优化构建脚本

此外,你还可以考虑优化你的构建脚本,以减少构建时间。以下是一些可能的优化措施:

  1. 缓存依赖项:在适当的情况下,使用 Github Actions 的缓存功能,以减少重复下载和安装依赖项的时间。

  2. 并行处理:如果你的构建过程可以分成多个阶段,尝试并行处理这些阶段,以节省时间。

  3. 精简步骤:去除不必要的步骤或操作,确保你的构建脚本只包含必要的内容。

分享更多信息

最后,如果问题仍然没有解决,我建议你在提问中分享更多细节,比如你的工作流配置文件、构建脚本以及任何相关的代码片段。这将有助于社区成员更准确地理解问题并提供更具体的解决方案。

希望以上建议能够帮助你解决 Github Actions 自托管 Runner 构建速度慢的问题。如果你在实施过程中遇到困难,随时在社区寻求帮助。祝你好运!

注意:以上解决方案仅供参考,具体操作可能因你的环境和配置而异。在做出任何更改之前,请确保你了解其可能的影响,并做好备份。

正文完