#!/bin/bash set -ex token=$REGISTRATION_TOKEN instance=$INSTANCE [ -z "$token" ] && 2>&1 echo "REGISTRATION_TOKEN env var must be provided" && exit 1 [ -z "$instance" ] && 2>&1 echo "INSTANCE env var is not provided" && exit 1 [ $UID -ne 0 ] && 2>&1 echo "Run as root please, we are going to install stuff" && exit 1 mkdir -p /tmp/actrunner trap "rm -rf /tmp/actrunner" EXIT pushd /tmp/actrunner VERSION=$(curl -s https://gitea.com/api/v1/repos/gitea/act_runner/releases | python3 -c 'import json,sys;print(json.load(sys.stdin)[0]["tag_name"])' | sed 's/v//') OS=$(uname -s | tr '[:upper:]' '[:lower:]') ARCH=$(uname -m | sed 's/x86_/amd/') echo "Downloading version ${VERSION} ${OS} ${ARCH}..." curl --progress-bar -L -o act_runner https://gitea.com/gitea/act_runner/releases/download/v${VERSION}/act_runner-${VERSION}-${OS}-${ARCH} chmod +x act_runner ./act_runner register --no-interactive --instance $instance --token $token --name $(hostname) --labels ${OS},${ARCH} cat </etc/systemd/system/act_runner.service [Unit] Description=Gitea Actions runner Documentation=https://gitea.com/gitea/act_runner After=docker.service [Service] ExecStart=/usr/sbin/act_runner daemon --config /etc/act_runner/config.yaml ExecReload=/bin/kill -s HUP $MAINPID WorkingDirectory=/var/lib/act_runner TimeoutSec=0 RestartSec=10 Restart=always User=act_runner [Install] WantedBy=multi-user.target EOF mkdir -p /etc/act_runner mkdir -p /var/lib/act_runner ./act_runner generate-config > /etc/act_runner/config.yaml mv act_runner /usr/sbin/ mv .runner /var/lib/act_runner/ useradd -r -m act_runner usermod -aG docker act_runner chown -R act_runner:act_runner /etc/act_runner chown -R act_runner:act_runner /var/lib/act_runner systemctl enable act_runner.service systemctl start act_runner.service popd