Jkr*_*ist 5 gitlab gitlab-ci-runner
我有一个远程跑步者:
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
Run Code Online (Sandbox Code Playgroud)
Gitlab CI 运行失败,首先删除此警告:
该作业陷入困境,因为该项目没有分配任何在线运行者。
转到跑步者页面然后:
出现超时失败或作业卡住。检查您的超时限制或重试
因此添加了标签,但它停止运行。远程运行器工作正常。有什么问题吗?
在另一种情况下,您可能会看到此消息,但乍一看并不明显。
如果您的运行程序设置为仅运行受保护分支的作业,并且您在创建管道后“保护”了分支,则重试卡住的作业将不起作用。您需要触发一个新的管道。
您必须确保您所指的远程运行程序是:
tags转到您的存储库的 Gitlab 项目设置。然后找到CI/CD > Runners部分。您应该看到如下图所示的内容:
在这里我们看到为该df51f559项目配置了一个运行程序 ( ),并且它正在运行(绿色)。如果您的存储库.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/
Run Code Online (Sandbox Code Playgroud)
这里my-runner的
如果您看不到激活的运行程序,该部分包含有关如何为您的项目注册新运行程序的说明。您还可以参考 Gitlab 的Registering Runners帮助文档。
如果您拥有 Gitlab 实例的管理员访问权限,您还可以转到管理仪表板Runners,从可用的运行器中选择一个运行器,然后手动将其添加到您的项目中。您还可以编辑标签。
最后,正如评论中提到的,如果您原本没有活跃的跑步者,那么您成功添加了跑步者,则需要重新启动作业。AFAIK,当作业因为没有运行程序而卡住时,当运行程序可用时它不会自动恢复。您必须手动重试或重新触发作业。