关于 Runner

Gitlab Runner 是 Gitlab 官方基于 Golang 开发的一款开源的 CI/CD 的部署工具,支持 Linux、macOS、Windows。有了它能让我们的开发流程变得更加顺畅、可控。

在 CentOS 上安装

# 添加官方仓库
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash

# 安装
sudo yum install gitlab-runner

注册 Runner

sudo gitlab-runner register

Runtime platform                                    arch=amd64 os=linux pid=1947 revision=5a147c92 version=11.11.1
Running in system-mode.                            
                                                   
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
https://gitlab.example.com/ # 这里替换成你的 Gitlab 服务器地址(在仓库的设置,或管理员后台中查看)

Please enter the gitlab-ci token for this runner:
UYXe4zr928H51rUSze4t # 这里替换成你的 Gitlab 服务器生成的 Token(在仓库的设置,或管理员后台中查看)

Please enter the gitlab-ci description for this runner:
[server]: Special server # Runner 的描述信息

Please enter the gitlab-ci tags for this runner (comma separated):
develop,preview # Runner 的标签,可以在 .gitlab-ci.yml 的配置中根据 tag 选择要在哪台 Runner 上执行 Pipelines
Registering runner... succeeded                     runner=UYXe7zr9

Please enter the executor: docker, ssh, virtualbox, docker+machine, kubernetes, docker-windows, docker-ssh, parallels, shell, docker-ssh+machine:
shell # 选择执行的方式
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

Runners 列表

关于执行方式

Shell

这种方式将会在安装 Gitlab Runner 的服务器上以 Shell 的方式执行 .gitlab-ci.yml 中配置的 script。如果你只是想用 Gitlab Runner 来自动拉取最新代码的话,可以采用这种方式。

stages: 
  - deploy

deploy:
  stage: deploy
  script:
    - 要执行的命令
  tags:
    - production
gitlab-runner install --working-directory /var/local --user root

上面安装服务的时候我手动指定了工作目录,这样他会创建 <working-directory>/builds/<short-token>/<concurrent-id>/<namespace>/<project-name> 目录结构,这样每次开发者 PUSH 代码到 master 分支时,Runner 将会拉取最新代码到该目录。剩下要做的就是配置 Nginx 的站点根目录到该文件夹。

I hope this is helpful, Happy hacking…