33 lines
1.7 KiB
Bash
33 lines
1.7 KiB
Bash
function start-act-runner() {
|
|
if ! systemctl is-active libvirtd --quiet; then
|
|
systemctl start libvirtd
|
|
fi
|
|
|
|
running_vms=$(virsh --connect=qemu:///session list)
|
|
if [[ "$running_vms" != *"${HOSTNAME}-act-runner"* ]]; then
|
|
echo "Sarting ACT runner '${HOSTNAME}-act-runner'..."
|
|
virsh --connect=qemu:///session start --domain="${HOSTNAME}-act-runner" && sleep 15
|
|
fi
|
|
|
|
_configure_act_alias
|
|
}
|
|
|
|
function _configure_act_alias() {
|
|
if systemctl is-active libvirtd --quiet; then
|
|
running_vms=$(virsh --connect=qemu:///session list)
|
|
if [[ "$running_vms" = *"${HOSTNAME}-act-runner"* ]]; then
|
|
export ACT_RUNNER_MAC=$(virsh --connect="qemu:///session" domiflist "${HOSTNAME}-act-runner" | awk '{ print $5 }' | tail -2 | head -1)
|
|
export ACT_RUNNER_IP=$(arp -a | grep $ACT_RUNNER_MAC | awk '{ print $2 }' | sed 's/[()]//g')
|
|
export ACT_SOURCE_IP="$(echo $ACT_RUNNER_IP | cut -d '.' -f -3).1"
|
|
export ACT_DOCKER_HOST="ssh://core@$ACT_RUNNER_IP:22"
|
|
alias act='DOCKER_HOST=$ACT_DOCKER_HOST act --rm --secret=GITHUB_TOKEN=$(gh auth token) --platform="ubuntu-latest=docker.io/catthehacker/ubuntu:full-latest" --platform="ubuntu-24.04=docker.io/catthehacker/ubuntu:full-latest" --container-options="--privileged" --artifact-server-path=$(mktemp --directory) --artifact-server-addr=$ACT_SOURCE_IP --cache-server-path=$(mkdir --parents /tmp/act-cache && echo /tmp/act-cache) --cache-server-addr=$ACT_SOURCE_IP'
|
|
else
|
|
alias act='echo ERROR: local act runner is not active, use "start-act-runner" to start it'
|
|
fi
|
|
else
|
|
alias act='echo ERROR: local act runner is not running, use "start-act-runner" to start it'
|
|
fi
|
|
}
|
|
|
|
_configure_act_alias
|