scripts/act-install.sh
2025-08-03 10:20:13 +02:00

62 lines
1.8 KiB
Bash
Executable File

#!/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 <<EOF >/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