This article explains how to install the exec runner on OSX. The exec runner is packaged in binary format and distributed as a Github release.
Download and unpack the binary. You will need to modify the below commands to use the latest release.
$ 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
The exec runner is configured using an environment variable file. The environment file location is determined by the user running the process. If the user is root:
If the user is not-root:
This file should use the syntax
<variable>=value which sets the variable to the given value and
# for comments. Please note this is not a bash file. Bash syntax and Bash expressions are not supported.
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
This article references the below configuration options. See Configuration for a complete list of configuration options.
- provides the hostname (and optional port) of your Drone server. The runner connects to the server at the host address to receive pipelines for execution.
- provides the protocol used to connect to your Drone server. The value must be either http or https.
- provides the shared secret used to authenticate with your Drone server. This must match the secret defined in your Drone server configuration.
- provides your pipeline steps with the PATH environment variable. This parameter is optional but recommended. You may find the default system path does not include many commands, resulting in command not found errors.
The exec runner writes logs to a file on the host machine. The log file location should be configured in the environment file before you start the service. The file location is determined by the user running the process. If the user is root:
If the user is non-root:
The log file directory must be created before you start the service:
$ mkdir /var/log/drone-runner-exec $ mkdir .drone-runner-exec/
Install and start the service.
$ drone-runner-exec service install $ drone-runner-exec service start
If the user is non-root, you may still need to install it as root, but you can configure the service to run as your user:
$ 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
Inspect the logs and verify the runner successfully established a connection with the Drone server. If the user is root:
$ cat /var/log/drone-runner-exec/log.txt INFO starting the server INFO successfully pinged the remote server
If the user is non-root:
$ cat ~/.drone-runner-exec/log.txt INFO starting the server INFO successfully pinged the remote server