当我使用 GitHub Actions 配置后,会出现长时间等待并显示“等待 runner 接收此作业”的情况。
'runner' 是什么意思?我该如何解决这个问题?
当我使用 GitHub Actions 配置后,会出现长时间等待并显示“等待 runner 接收此作业”的情况。
'runner' 是什么意思?我该如何解决这个问题?
可能的原因之一是GitHub不再支持您请求的操作系统。
例如,以下内容将无法正常工作:
runs-on: ubuntu-18.04
https://github.com/actions/runner-images/issues/6002
解决方案是使用一个支持的操作系统,例如:
runs-on: ubuntu-latest
支持的操作系统列表,请参见:
https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
runs-on: ubuntu-18.04
替换为runs-on: ubuntu-latest
和container: ubuntu:18.04
即可。字符串ubuntu:18.04
指的是Docker Hub上已经存在的Docker镜像。然而,请注意这个镜像非常简约,所以在实践中,你需要添加更多的安装步骤,比起现在已经停用的GitHub Ubuntu 18.04镜像来说。例如,对于一个C++/Qt项目,可以参考以下链接:https://github.com/dalboris/test-cpp-github-actions/blob/master/.github/workflows/ubuntu-18.04-docker.yml - Boris Dalsteinruns-on:
之后拼写所请求的Runner名称错误,GitHub Actions不会明确告诉您已经犯了一个错误。相反,它会假设存在一个名为该名称的Runner,并将继续无限期等待其可用。
这是我们遇到此错误的最常见原因。请确保在runs-on:
之后正确拼写操作系统和架构名称。
在我的情况下,这只是个小错误。
runs-on应该是ubuntu-latest,但实际上是自行托管的。导致等待时间过长。
jobs:
Example-Actions-Job:
name: Exploring GitHub Actions
runs-on: self-hosted
steps:
runs-on
行是正确的(即其他具有相同 runs-on
的作业在其他地方正常工作)。这可能发生的另一个原因是在下面错误地输入了运行程序的名称:
jobs:
push:
runs-on: [runner name]
确保它没有任何错别字,因为我前几天就因此头痛了几个小时。
我的.yml
文件中有一个错别字。我将其修正为
runs-on: ubuntu-latest
现在运行程序已经开始执行任务了。
我不知道为什么,在我的情况下是 runs-on: ubuntu-latest
但卡住了。
这是一个免费的 repo,所以很奇怪。
3小时后,我取消了作业,重新运行时立即得到了一个 runner。所以这也可能是 GitHub 的问题。
jobs:
jobA:
runs-on: ubuntu-latest
environment: abc
# ...
# jobB hangs for ever and wont get started
jobB:
runs-on: ubuntu-latest
environment: xyz
needs: publish
# ...
我有同样的问题,这就像运行程序离线了一样,所以你也需要检查一下运行程序的状态。我从VPS中删除了项目文件夹,所以它显示为离线。所以我将重新开始,然后就可以正常工作了。