Files
toolbox-dev-env/shell/scripts.d/50-act.sh

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