1
0
Fork 0
mirror of https://code.forgejo.org/actions/setup-forgejo synced 2024-09-18 17:36:16 +00:00
setup-forgejo/forgejo-runner.sh

54 lines
1.6 KiB
Bash
Raw Normal View History

2023-03-24 21:42:52 +00:00
#!/bin/bash
2023-04-01 09:08:06 +00:00
# SPDX-License-Identifier: MIT
2023-03-24 21:42:52 +00:00
set -ex
function dependencies() {
if ! which curl daemon > /dev/null ; then
apt-get install -y -qq curl daemon
2023-03-24 21:42:52 +00:00
fi
}
function download() {
local runner_repository="$1"
local version="$2"
2023-03-24 21:42:52 +00:00
if ! which forgejo-runner > /dev/null; then
curl -L --fail -sS $runner_repository/releases/download/$version/forgejo-runner-amd64 > /bin/forgejo-runner
chmod 755 /bin/forgejo-runner
fi
2023-03-24 21:42:52 +00:00
}
function register() {
local forgejo="$1"
docker exec --user 1000 forgejo forgejo actions generate-runner-token > forgejo-runner-token
timeout --signal=KILL 30 forgejo-runner register --no-interactive --instance "$forgejo" --name runner --token $(cat forgejo-runner-token) --labels ubuntu-latest:docker://node:16-buster,self-hosted
2023-03-24 21:42:52 +00:00
}
function run() {
rm -f forgejo-runner.log
daemon --chdir=$(pwd) --unsafe --env="TERM=$TERM" --env="HOME=$HOME" --env="PATH=$PATH" --env="USER=$USER" --env="TERM=dumb" --env="USERNAME=$USERNAME" --env="LANG=$LANG" --pidfile=$(pwd)/forgejo-runner-pid --errlog=$(pwd)/forgejo-runner.log --output=$(pwd)/forgejo-runner.log -- forgejo-runner --config $(pwd)/runner-config.yaml daemon
2023-03-27 17:39:19 +00:00
sleep 1
cat forgejo-runner.log
2023-03-24 21:42:52 +00:00
}
function setup() {
local runner_repository="${1:-https://code.forgejo.org/forgejo/runner}"
2023-05-22 09:27:50 +00:00
local version="${2:-v2.0.0}"
2023-03-27 17:39:19 +00:00
local forgejo="${3:-http://$(cat forgejo-ip):3000/}"
2023-03-24 21:42:52 +00:00
dependencies
download $runner_repository $version
2023-03-24 21:42:52 +00:00
register $forgejo
run
}
function teardown() {
if test -f forgejo-runner-pid ; then
2023-03-27 21:30:22 +00:00
kill -TERM $(cat forgejo-runner-pid)
2023-03-24 21:42:52 +00:00
rm -f forgejo-runner-pid
fi
}
"$@"