在push项目到Gitlab之后,出现错误,错误信息为:This job is stuck, because you don’t have any active runners that can run this job

则需要配置好Runner了

gitlab-ci runner的安装与配置(以Mac为例)

runner可以理解为一个环境,相当于jenkins的slave,机器(或者是docker),通过 runner程序与git服务器进行通信,当有新的任务发布到runner时,runner会执行.gitlab-ci.yml所定义的ci指令。

runner有三种模式, sharedRunner,specific runners和 group runners。gitlab上可以使用官方的shared runners,创建runner需要git管理员的权限。

本次配置采用手动配置specific runner。

安装Runner

1、使用homebrew安装

命令行输入:

brew install gitlab-runner

2、官方安装

Gitlab runner 10以上安装方式,若安装旧版本前往官网查看

下载:
sudo curl --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64
设置权限:
sudo chmod +x /usr/local/bin/gitlab-runner

注册Runner

注册runner,你需要有一个项目,并且需要至少master权限。
打开settings->CI/CD页面,选择第二项Runners settings,左侧会显示与当前项目相关的参数。

执行
gitlab-runner register
指定git的URL
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
https://git.lug.ustc.edu.cn/
指定gitlab-runner的token
Please enter the gitlab-ci token for this runner:
<<your token>>

上图的第二个红线所指的地方

给CI的描述
Please enter the gitlab-ci description for this runner:
[huxinpengdeMacBook-Pro.local]: blog
关联git和runner的tag
Please enter the gitlab-ci tags for this runner (comma separated):
pages,test<your tag>
选择runner的执行环境
Please enter the executor: custom, shell, virtualbox, docker+machine, docker, docker-ssh, parallels, ssh, docker-ssh+machine, kubernetes:
shell<mac上可以直接使用shell>

若选择docker,则需要下一步

指定docker的image
 Please enter the Docker image (eg. ruby:2.1):
 alpine:latest
  • url:私有git的路径

  • token:项目的token,用于关联runner和项目

  • name:runner的名字,用于区分runner

  • tags:用于匹配任务(jobs)和执行任务的设备(runners)

  • executor:执行环境

当我们完成设置后,可通过vi ~/.gitlab-runner/config.toml打开runner 的配置文件看到之前配置的内容。

启动

cd ~
gitlab-runner install
gitlab-runner start
或者 brew services start gitlab-runner

当所有步骤执行后,在Runners settings会显示runner的状态,显示为绿色,则runner配置成功。


参考:

[1] gitlab-runner的配置——for Mac
[2] [gitlab-runner官方文档



代码      Git 版本控制

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!