Files
Linux-Scripts/main/runner.sh
2025-12-21 08:14:57 -08:00

81 lines
2.3 KiB
Bash

#!/bin/bash
# Copyright (c) 2022 fithwum
# All rights reserved
set -eu
USER=fithwum
FILE=config.yaml
# openssh
apt-get install openssh-client openssh-server
# docker setup
apt-get remove -y $(dpkg --get-selections docker.io docker-compose docker-doc podman-docker containerd runc | cut -f1)
# Add Docker's official GPG key:
apt-get update
apt-get install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# user
adduser $USER docker
# runner install
cd /usr/local/bin/
wget https://gitea.com/gitea/act_runner/releases/download/v0.2.13/act_runner-0.2.13-linux-amd64
mv act_runner-*-linux-amd64 act_runner
chmod +x act_runner
./act_runner generate-config | tee $FILE > /dev/null
chown fithwum:docker act_runner
chown fithwum:docker $FILE
sed -i '/^ labels:/,/^$/c\
labels:\
- "vm-ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest"\
- "vm-ubuntu-22.04:docker://docker.gitea.com/runner-images:ubuntu-22.04"\
- "vm-ubuntu-20.04:docker://docker.gitea.com/runner-images:ubuntu-20.04"\
- "vm-docker-build:docker://catthehacker/ubuntu:custom-latest-20240215"\
- "vm-docker-build2:docker://catthehacker/ubuntu:act-latest"\
' $FILE
./act_runner --config $FILE register --no-interactive --instance <instance_url> --token <registration_token> --name <runner_name>
tee /etc/systemd/system/act_runner.service <<EOF
[Unit]
Description=Gitea Actions runner
Documentation=https://gitea.com/gitea/act_runner
After=docker.service
[Service]
ExecStart=/usr/local/bin/act_runner daemon --config /usr/local/bin/$FILE
ExecReload=/bin/kill -s HUP \$MAINPID
WorkingDirectory=/usr/local/bin
TimeoutSec=0
RestartSec=10
Restart=always
User=$USER
[Install]
WantedBy=multi-user.target
EOF
# load the new systemd unit file
systemctl daemon-reload
# start the service and enable it at boot
systemctl enable act_runner --now