Install GitLab Runner on FreeBSD
Installing GitLab Runner
Here are the steps to install and configure GitLab Runner under FreeBSD:
-
Create the
gitlab-runner
user and group:sudo pw group add -n gitlab-runner sudo pw user add -n gitlab-runner -g gitlab-runner -s /usr/local/bin/bash sudo mkdir /home/gitlab-runner sudo chown gitlab-runner:gitlab-runner /home/gitlab-runner
-
Download the binary for your system:
# For amd64 sudo fetch -o /usr/local/bin/gitlab-runner https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/binaries/gitlab-runner-freebsd-amd64 # For i386 sudo fetch -o /usr/local/bin/gitlab-runner https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/binaries/gitlab-runner-freebsd-386
You can download a binary for every available version as described in Bleeding Edge - download any other tagged release.
-
Give it permissions to execute:
sudo chmod +x /usr/local/bin/gitlab-runner
-
Create an empty log file with correct permissions:
sudo touch /var/log/gitlab_runner.log && sudo chown gitlab-runner:gitlab-runner /var/log/gitlab_runner.log
-
Create the
rc.d
directory in case it doesn’t exist:mkdir -p /usr/local/etc/rc.d
-
Create the
gitlab_runner
script insiderc.d
:Bash users can do the following:
sudo bash -c 'cat > /usr/local/etc/rc.d/gitlab_runner' << "EOF" #!/bin/sh # PROVIDE: gitlab_runner # REQUIRE: DAEMON NETWORKING # BEFORE: # KEYWORD: . /etc/rc.subr name="gitlab_runner" rcvar="gitlab_runner_enable" user="gitlab-runner" user_home="/home/gitlab-runner" command="/usr/local/bin/gitlab-runner" command_args="run" pidfile="/var/run/${name}.pid" start_cmd="gitlab_runner_start" gitlab_runner_start() { export USER=${user} export HOME=${user_home} if checkyesno ${rcvar}; then cd ${user_home} /usr/sbin/daemon -u ${user} -p ${pidfile} ${command} ${command_args} > /var/log/gitlab_runner.log 2>&1 fi } load_rc_config $name run_rc_command $1 EOF
If you are not using bash, create a file named
/usr/local/etc/rc.d/gitlab_runner
and include the following content:#!/bin/sh # PROVIDE: gitlab_runner # REQUIRE: DAEMON NETWORKING # BEFORE: # KEYWORD: . /etc/rc.subr name="gitlab_runner" rcvar="gitlab_runner_enable" user="gitlab-runner" user_home="/home/gitlab-runner" command="/usr/local/bin/gitlab-runner" command_args="run" pidfile="/var/run/${name}.pid" start_cmd="gitlab_runner_start" gitlab_runner_start() { export USER=${user} export HOME=${user_home} if checkyesno ${rcvar}; then cd ${user_home} /usr/sbin/daemon -u ${user} -p ${pidfile} ${command} ${command_args} > /var/log/gitlab_runner.log 2>&1 fi } load_rc_config $name run_rc_command $1
-
Make the
gitlab_runner
script executable:sudo chmod +x /usr/local/etc/rc.d/gitlab_runner
- Register a runner
-
Enable the
gitlab-runner
service and start it:sudo sysrc gitlab_runner_enable=YES sudo service gitlab_runner start
If you don’t want to enable the
gitlab-runner
service to start after a reboot, use:sudo service gitlab_runner onestart
Upgrading to GitLab Runner 10
To upgrade GitLab Runner from a version prior to 10.0:
-
Stop GitLab Runner:
sudo service gitlab_runner stop
-
Optionally, preserve the previous version of GitLab Runner just in case:
sudo mv /usr/local/bin/gitlab-ci-multi-runner{,.$(/usr/local/bin/gitlab-ci-multi-runner --version| grep Version | cut -d ':' -f 2 | sed 's/ //g')}
-
Download the new GitLab Runner and make it executable:
# For amd64 sudo fetch -o /usr/local/bin/gitlab-runner https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/binaries/gitlab-runner-freebsd-amd64 # For i386 sudo fetch -o /usr/local/bin/gitlab-runner https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/binaries/gitlab-runner-freebsd-386 sudo chmod +x /usr/local/bin/gitlab-runner
-
Edit
/usr/local/etc/rc.d/gitlab_runner
and change:command="/usr/local/bin/gitlab-ci-multi-runner run"
to:
command="/usr/local/bin/gitlab-runner run"
-
Start GitLab Runner:
sudo service gitlab_runner start
-
After you confirm all is working correctly, you can remove the old binary:
sudo rm /usr/local/bin/gitlab-ci-multi-runner.*