gitlab - Gitlab runner 无法启动。这项工作被卡住了,因为您没有任何在线活跃的跑步者,并且这些跑步者被分配给他们:ios
问题描述
我有一个远程跑步者:
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 无法运行,首先删除此警告:
这项工作被卡住了,因为该项目没有在线分配任何跑步者。
转到跑步者页面,然后:
出现超时失败或作业卡住。检查您的超时限制或重试
因此添加了标签,但它停止了运行。远程运行器工作正常。有什么问题吗?
解决方案
您必须确保您所指的远程运行器是:
- 实际运行
- 在项目的Runners部分中列为已激活的 runner
- 配置为跟随/收听相同
tags
转到你的 repo 的 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
是
- 令牌必须与Runners页面中显示的令牌匹配
- URL 必须与 Gitlab 项目的基本 URL 匹配
如果您看不到已激活的跑步者,该部分会提供有关如何为您的项目注册新跑步者的说明。你也可以参考 Gitlab 的Registering Runners帮助文档。
如果您对 Gitlab 实例具有管理员访问权限,您还可以转到管理仪表板Runners,从可用的运行器中选择一个运行器,然后手动将其添加到您的项目中。您还可以编辑标签。
最后,正如评论中提到的,如果您最初没有活跃的跑步者,那么您成功添加了一个,您需要重新启动作业。AFAIK,当一项工作因为没有跑步者而卡住时,它不会在跑步者可用时自动恢复。您必须手动重试或重新触发该作业。
推荐阅读
- memory-management - SBCL 动态空间大小设置在 Windows 10 中被忽略
- python - 为什么更新 Steam 头像的帖子请求不起作用?
- java - Android webview 无法打开 api.whatsapp
- java - 如何从 Java 中的 Google Drive API 获取 Gdoc 内容?
- python - 在集成终端中调试 python 代码时 VSCode 无法读取用户输入
- lazarus - 如何恢复 TImage 的默认图片?
- microservices - 如何在 Dynatrace 中跟踪 java 方法调用并获取警报?
- javascript - 提交表单时重置 DOM 表
- python - 无法从 TensorFlow 或 Keras 中的 Google Cloud Storage 存储桶加载图像
- javascript - Expo:如何在通过 localhost 访问时修复开发中的 Web 推送通知(以及如何修复 `localhost` 服务工作者)?