Gitlab runner 无法启动。这项工作被卡住了,因为您没有任何在线活跃的跑步者,并且这些跑步者被分配给他们:ios
Posted
技术标签:
【中文标题】Gitlab runner 无法启动。这项工作被卡住了,因为您没有任何在线活跃的跑步者,并且这些跑步者被分配给他们:ios【英文标题】:Gitlab runner fails to start. This job is stuck because you don't have any active runners online with any of these tags assigned to them: ios 【发布时间】:2020-05-23 08:44:40 【问题描述】:我有一个远程跑步者:
ci$ gitlab-runner --version 版本:12.2.0
.gitlab-ci.yml:
stages:
- build
- deploy
variables:
LANG: "en_US.UTF-8"
LC_ALL: "en_US.UTF-8"
build:
tags:
- ios
stage: build
script:
- bundle exec fastlane build
except:
- develop
- master
- /^rc\/.*$/
environment:
name: production
deploy:
tags:
- ios
stage: deploy
before_script:
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client git -y )'
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- ssh-keyscan gitlab.com >> ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
- ssh -vv git@gitlab.com
- git config --global user.email "email@email.com"
- git config --global user.name "username"
- git branch
- git branch -r
script:
- bundle exec fastlane deploy
only:
- develop
- master
- /^rc\/.*$/
environment:
name: production
post:
stage: .post
when: always
script:
- bundle exec fastlane clear_data_CI
Gitlab CI 运行失败,先放弃这个警告:
这个工作被卡住了,因为该项目没有任何在线跑步者 分配给它。
转到跑步者页面 后来:
出现超时失败或作业卡住。检查你的 超时限制或重试
所以添加了标签,但它停止运行。远程运行器工作正常。有什么问题吗?
【问题讨论】:
检查您的 Gitlab 项目是否有一个激活的运行器,该运行器遵循ios
标记。
【参考方案1】:
您必须确保您所指的远程运行器是:
实际运行 在您项目的Runners部分中列为已激活的跑步者 配置为关注/收听相同的tags
转到您的存储库的 Gitlab 项目设置。然后找到 CI / CD > Runners 部分。您应该会看到类似于下图的内容:
这里我们看到为项目配置了一个运行器(df51f559
),它正在运行(绿色)。如果您的 repo 的 .gitlab-ci.yml
正在使用标签,那么该运行器 也必须具有相同的标签。所以在这里,如果你的工作需要一个带有 ios
标签的跑步者,那么这个 UI 也应该显示跑步者有一个 ios
标签。
您可以使用gitlab-runner verify
或list
验证运行器令牌:
root@buildpc:~# gitlab-runner verify
...
Verifying runner... is alive runner=df51f559
root@buildpc:~# gitlab-runner list
my-runner Executor=docker Token=df51f55995e68cccb3ada8c1458ec7 URL=http://192.168.1.61/
这里是my-runner
的
如果您看不到已激活的跑步者,该部分会提供有关如何为您的项目注册新跑步者的说明。也可以参考 Gitlab 的 Registering Runners 帮助文档。
如果您对 Gitlab 实例具有管理员访问权限,您还可以转到管理仪表板 Runners,从可用的运行器中选择一个运行器,然后手动将其添加到您的项目中。您还可以编辑标签。
最后,as mentioned in the comments,如果您最初没有活跃的跑步者,那么您成功添加了一个,您需要重新启动作业。 AFAIK,当一项工作因为没有跑步者而卡住时,它不会在跑步者可用时自动恢复。您必须手动重试或重新触发该作业。
【讨论】:
现在我看到其中一个可用的跑步者是灰色的(而不是绿色)。灰色是带有 ios 标签的那个。为什么会发生这种情况以及如何让它再次发挥作用? @Jkrist 这意味着跑步者离线。正如我所提到的,请与gitlab-runner verify
确认跑步者确实“活着”。如果不是,请尝试使用gitlab-runner restart
。
好的,现在我看到它在线并且应该可以工作。但是在 gitlab 中它显示待处理并且显示作业被卡住。检查跑步者。不知道为什么会这样......
@Jkrist 您是“重试”工作还是重新触发了管道? AFAIK,当一项工作因为没有跑步者而卡住时,它不会在跑步者可用时自动恢复。您必须手动重试或重新触发该作业。【参考方案2】:
在另一个实例中,您可能会看到此消息,但乍一看并不明显。
如果您的运行器设置为仅从受保护的分支运行作业,并且您在创建管道后“保护”了该分支,则 重试卡住的作业将不起作用。您需要触发一个新的管道。
【讨论】:
这没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review 我不同意。以上是关于Gitlab runner 无法启动。这项工作被卡住了,因为您没有任何在线活跃的跑步者,并且这些跑步者被分配给他们:ios的主要内容,如果未能解决你的问题,请参考以下文章
Gitlab CI runner 无法暴露嵌套 Docker 容器的端口