62 lines
1.8 KiB
Bash
Executable File
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
|