Add act-runner target for building local ACT env

This commit is contained in:
2025-11-13 18:03:43 -05:00
parent 012a87eddc
commit f1f8f212b5
5 changed files with 276 additions and 3 deletions

View File

@@ -15,4 +15,5 @@ alias psync="poetry install --sync"
alias code='codium'
alias ssh='ssh -F ~/.ssh/config'
alias whereami='echo $LOCATION'
alias gg='dev'
alias gg='dev'
alias bk='cd -'

32
shell/scripts.d/50-act.sh Normal file
View File

@@ -0,0 +1,32 @@
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