102 строки
2.0 KiB
Markdown
102 строки
2.0 KiB
Markdown
|
# Install a FreeBSD CI instance
|
||
|
|
||
|
Install the following packages:
|
||
|
|
||
|
```
|
||
|
pkg install -y bash git gmake cmake cmocka openssl wget pkgconf ccache bash
|
||
|
```
|
||
|
|
||
|
Create gitlab-runner user:
|
||
|
|
||
|
```
|
||
|
pw group add -n gitlab-runner
|
||
|
pw user add -n gitlab-runner -g gitlab-runner -s /usr/local/bin/bash
|
||
|
mkdir /home/gitlab-runner
|
||
|
chown gitlab-runner:gitlab-runner /home/gitlab-runner
|
||
|
```
|
||
|
|
||
|
Get the gitlab-runner binary for freebsd:
|
||
|
|
||
|
```
|
||
|
wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-freebsd-amd64
|
||
|
chmod +x /usr/local/bin/gitlab-runner
|
||
|
```
|
||
|
|
||
|
Create a log file and allow access:
|
||
|
|
||
|
```
|
||
|
touch /var/log/gitlab_runner.log && chown gitlab-runner:gitlab-runner /var/log/gitlab_runner.log
|
||
|
```
|
||
|
|
||
|
We need a start script to run it on boot:
|
||
|
|
||
|
```
|
||
|
mkdir -p /usr/local/etc/rc.d
|
||
|
cat > /usr/local/etc/rc.d/gitlab_runner << EOF
|
||
|
#!/usr/local/bin/bash
|
||
|
# PROVIDE: gitlab_runner
|
||
|
# REQUIRE: DAEMON NETWORKING
|
||
|
# BEFORE:
|
||
|
# KEYWORD:
|
||
|
|
||
|
. /etc/rc.subr
|
||
|
|
||
|
name="gitlab_runner"
|
||
|
rcvar="gitlab_runner_enable"
|
||
|
|
||
|
load_rc_config $name
|
||
|
|
||
|
user="gitlab-runner"
|
||
|
user_home="/home/gitlab-runner"
|
||
|
command="/usr/local/bin/gitlab-runner run"
|
||
|
pidfile="/var/run/${name}.pid"
|
||
|
|
||
|
start_cmd="gitlab_runner_start"
|
||
|
stop_cmd="gitlab_runner_stop"
|
||
|
status_cmd="gitlab_runner_status"
|
||
|
|
||
|
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} > /var/log/gitlab_runner.log 2>&1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
gitlab_runner_stop()
|
||
|
{
|
||
|
if [ -f ${pidfile} ]; then
|
||
|
kill `cat ${pidfile}`
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
gitlab_runner_status()
|
||
|
{
|
||
|
if [ ! -f ${pidfile} ] || kill -0 `cat ${pidfile}`; then
|
||
|
echo "Service ${name} is not running."
|
||
|
else
|
||
|
echo "${name} appears to be running."
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
run_rc_command $1
|
||
|
EOF
|
||
|
chmod +x /usr/local/etc/rc.d/gitlab_runner
|
||
|
```
|
||
|
|
||
|
Register your gitlab-runner with your gitlab project
|
||
|
|
||
|
```
|
||
|
su gitlab-runner -c 'gitlab-runner register'
|
||
|
```
|
||
|
|
||
|
Start the gitlab runner service:
|
||
|
|
||
|
```
|
||
|
sysrc -f /etc/rc.conf "gitlab_runner_enable=YES"
|
||
|
service gitlab_runner start
|
||
|
```
|