feat(ci): optimize Molecule VM creation

- reuse validated runner-owned Vagrant linked-clone masters\n- create the default guests in bounded two-machine batches\n- capture create timing and runner utilization diagnostics
This commit is contained in:
Timothy Stewart
2026-08-01 01:15:25 -05:00
committed by Techno Tim
parent 57f234c8da
commit 10bde4eff0
14 changed files with 563 additions and 3 deletions
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
set -Eeuo pipefail
[[ "${1:-}" =~ ^[0-9]+$ ]]
+27
View File
@@ -0,0 +1,27 @@
#!/usr/bin/env bash
set -Eeuo pipefail
printf '%s\n' "$*" >> "$MOCK_VAGRANT_LOG"
case "${1:-}" in
up)
counter_file="$MOCK_VBOX_STATE/counter"
counter=0
[[ ! -r "$counter_file" ]] || counter="$(cat "$counter_file")"
counter=$((counter + 1))
printf '%s\n' "$counter" > "$counter_file"
uuid="00000000-0000-4000-8000-$(printf '%012d' "$counter")"
vm_dir="$MOCK_VBOX_ROOT/master-$counter"
mkdir -p -- "$vm_dir"
: > "$vm_dir/master.vbox"
: > "$vm_dir/master.vdi"
printf '%s\n' \
'VMState="poweroff"' \
'groups="/"' \
"CfgFile=\"$vm_dir/master.vbox\"" \
"SATA-0-0=\"$vm_dir/master.vdi\"" > "$MOCK_VBOX_STATE/vm-$uuid"
printf '%s\n' "$uuid" > "$MOCK_BOX_DIR/master_id"
;;
destroy) ;;
*) exit 2 ;;
esac
+40
View File
@@ -0,0 +1,40 @@
#!/usr/bin/env bash
set -Eeuo pipefail
printf '%s\n' "$*" >> "$MOCK_VBOX_LOG"
command_name="${1:-}"
uuid="${2:-}"
case "$command_name" in
showvminfo)
[[ -r "$MOCK_VBOX_STATE/vm-$uuid" ]] || exit 1
cat "$MOCK_VBOX_STATE/vm-$uuid"
;;
getextradata)
key_slug="${3//\//_}"
if [[ ! -r "$MOCK_VBOX_STATE/extra-$uuid-$key_slug" ]]; then
printf '%s\n' 'No value set!'
exit 0
fi
printf 'Value: '
cat "$MOCK_VBOX_STATE/extra-$uuid-$key_slug"
;;
modifyvm)
[[ "${3:-}" == --groups ]]
awk -v groups="${4:-}" '
$1 !~ /^groups=/ { print }
END { printf "groups=\"%s\"\n", groups }
' "$MOCK_VBOX_STATE/vm-$uuid" > "$MOCK_VBOX_STATE/vm-$uuid.tmp"
mv "$MOCK_VBOX_STATE/vm-$uuid.tmp" "$MOCK_VBOX_STATE/vm-$uuid"
;;
setextradata)
key_slug="${3//\//_}"
printf '%s\n' "${4:-}" > "$MOCK_VBOX_STATE/extra-$uuid-$key_slug"
;;
unregistervm|closemedium)
printf '%s\n' 'destructive VirtualBox command invoked' >&2
exit 99
;;
*) exit 2 ;;
esac