Drone CI 中文文档

在 MacOS 上安装 Exec Runner

本文解释了如何在 OSX 上安装 Exec Runner。Exec Runner 以二进制格式打包并作为 Github Release 分发。

下载 Exec Runner 程序

下载并解压二进制文件。你将需要修改以下命令以使用最新版本。

$ curl -L https://github.com/drone-runners/drone-runner-exec/releases/latest/download/drone_runner_exec_darwin_amd64.tar.gz | tar zx
sudo cp drone-runner-exec /usr/local/bin

配置 Exec Runner

Exec Runner 是使用环境变量文件配置的。环境文件位置由运行进程的用户决定。如果用户是 root:

/etc/drone-runner-exec/config

如果用户不是 root 用户:

~/.drone-runner-exec/config

该文件应使用语法 <variable>=value 将变量设置为指定值,并使用 # 表示注释。请注意,这不是 bash 文件。不支持 Bash 语法和 Bash 表达式。

DRONE_RPC_PROTO=https
DRONE_RPC_HOST=drone.company.com
DRONE_RPC_SECRET=super-duper-secret
DRONE_RUNNER_PATH=/usr/local/bin:/usr/bin:/usr/sbin:/sbin

本文引用了以下配置选项。有关配置选项的完整列表,请参阅 配置

  • DRONE_RPC_HOST
    提供 Drone Server 的主机名(和可选端口)。Runner 连接到指定主机地址的 Server 以接收 Pipeline 以执行。: 提供 Drone Server 的主机名(和可选端口)。Runner 连接到指定主机地址的 Server 以接收 Pipeline 以执行。
  • DRONE_RPC_PROTO
    提供用于连接 Drone Server 的协议。该值必须是 httphttps
  • DRONE_RPC_SECRET
    提供用于向 Drone Server 进行身份验证的共享密钥。这必须与你的 Drone Server 配置中定义的 Secret 匹配。
  • DRONE_RUNNER_PATH
    为你的 Pipeline 步骤提供 PATH 环境变量。此参数是可选的,但建议使用。你可能会发现默认系统 PATH 环境变量不包含许多命令,从而导致找不到命令错误。

日志记录

Exec Runner 将日志写入主机上的文件。在启动服务之前,应在环境文件中配置日志文件位置。文件位置由运行该进程的用户决定。如果用户是 root:

DRONE_LOG_FILE=/var/log/drone-runner-exec/log.txt

如果用户是非 root 用户:

DRONE_LOG_FILE=/Users/<user>/.drone-runner-exec/log.txt

日志文件的存放目录必须在启动服务之前先创建好:

mkdir /var/log/drone-runner-exec
mkdir .drone-runner-exec/

安装 Exec Runner

使用以下命令安装 Exec Runner 并启动服务。

drone-runner-exec service install
drone-runner-exec service start

如果用户是非 root 用户,你可能仍需要以 root 用户身份安装它,但你可以将服务配置为以你的用户身份运行:

sudo drone-runner-exec service install --config=/Users/<user>/.drone-runner-exec/config
sudo defaults write /Library/LaunchDaemons/drone-runner-exec UserName <user>
sudo drone-runner-exec service start

验证安装结果

检查日志并验证 Runner 是否成功建立了与 Drone Server 的连接。如果用户是 root:

$ cat /var/log/drone-runner-exec/log.txt

INFO[0000] starting the server
INFO[0000] successfully pinged the remote server

如果用户是非 root 用户:

$ cat ~/.drone-runner-exec/log.txt

INFO[0000] starting the server
INFO[0000] successfully pinged the remote server