From dfcf793a9fdfbcd576ffc6fcd046b7173714a255 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Thu, 27 May 2021 09:58:34 +0200 Subject: doc: Add REAMDE how to setup a freebsd gitlab runner Signed-off-by: Andreas Schneider Reviewed-by: Jakub Jelen --- doc/README.gitlab.freebsd.md | 101 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 doc/README.gitlab.freebsd.md (limited to 'doc') diff --git a/doc/README.gitlab.freebsd.md b/doc/README.gitlab.freebsd.md new file mode 100644 index 00000000..65628d2d --- /dev/null +++ b/doc/README.gitlab.freebsd.md @@ -0,0 +1,101 @@ +# 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 +``` -- cgit v1.2.3