GitLab Runner 实现了许多执行器,可以用于在不同的场景中运行您的构建。

执行器列表如下:

  • SSH
  • Shell
  • Parallels
  • VirtualBox
  • Docker
  • Docker Machine (auto-scaling)
  • Kubernetes
  • Custom

这是目前已有的执行器,GitLab 目前也不打算开发新的执行器。

1. 执行器介绍

(1) SSH

使用SSH远程运行构建

(2) Shell

Shell是最简单的执行器。需要将构建所需的所有依赖项手动安装在安装了Runner的同一台计算机上。默认情况下,在本地运行 build。

(3) 虚拟机执行器(VirtualBox/Parallels)

这种执行器使您可以使用已创建的虚拟机,该虚拟机将被克隆并用于运行您的构建。我们提供了两个完整的系统虚拟化选项:VirtualBox和Parallels。如果您想在不同的操作系统上运行构建,它们将非常有用,因为它允许在Windows,Linux,macOS或FreeBSD上创建虚拟机,然后GitLab Runner连接到虚拟机并在其上运行构建。它的用法对于降低基础架构成本也很有用。

(4)Docker

一个不错的选择是使用Docker,因为它提供了一个干净的构建环境,并且具有轻松的依赖关系管理(用于构建项目的所有依赖关系都可以放在Docker映像中)。Docker执行器使您可以轻松地创建具有依赖服务(例如MySQL)的构建环境。

(5) Docker Machine

Docker Machine 是Docker执行器的一个特殊版本,支持自动伸缩。它的工作方式与普通的Docker执行器相似,但具有根据Docker Machine按需创建的构建主机。

(6) Kubernetes

该Kubernetes 执行器允许您为构建使用现有Kubernetes集群。执行者将调用Kubernetes集群API并为每个GitLab CI作业创建一个新的Pod(带有构建容器和服务容器)。

(7)Custom

在自定义执行器里,您可以指定自己的执行环境。当GitLab Runner不提供执行程序(例如LXC容器)时,您便可以向GitLab Runner提供自己的可执行文件,以配置和清除要使用的任何环境。

2. 执行器的功能

执行器支持不同的平台和方法来构建项目。下图概括了每种执行器的主要功能对比。

3.1 Runner 执行器介绍 - 图1

其它功能的支持:

3.1 Runner 执行器介绍 - 图2

3. 兼容性

各种系统支持的 shell

3.1 Runner 执行器介绍 - 图3

  1. 默认shell。
  2. 如果没有指定shell,则使用默认shell。
  3. 注册新的GitLab运行程序时的默认shell。
  4. 由于这个问题,Bash shell目前不能在开箱即用的Windows上工作,但它将很快再次得到支持。