updates
This commit is contained in:
60
scripts/run-test.sh
Executable file
60
scripts/run-test.sh
Executable file
@@ -0,0 +1,60 @@
|
||||
#!/bin/bash
|
||||
|
||||
TEST_NAME="$1"
|
||||
TEST_REPO="$2"
|
||||
GOLDEN_IMAGE="$3"
|
||||
SSH_KEY="${4:-$HOME/.ssh/id_rsa}"
|
||||
|
||||
if [ -z "$TEST_NAME" ] || [ -z "$TEST_REPO" ] || [ -z "$GOLDEN_IMAGE" ]; then
|
||||
echo "Usage: $0 <test_name> <test_repo_url> <golden_image> [ssh_key]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
VM_NAME="$TEST_NAME-$$"
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
WORK_DIR="/tmp/test-$VM_NAME"
|
||||
|
||||
mkdir -p "$WORK_DIR"
|
||||
cd "$WORK_DIR"
|
||||
|
||||
cleanup() {
|
||||
echo "Cleaning up..."
|
||||
"$SCRIPT_DIR/cleanup_vm.sh" "$VM_NAME" 2>/dev/null || true
|
||||
cd /tmp
|
||||
rm -rf "$WORK_DIR"
|
||||
}
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
echo "Provisioning VM..."
|
||||
VM_IP=$("$SCRIPT_DIR/provision_vm.sh" "$VM_NAME" "$GOLDEN_IMAGE" 60 | tail -1)
|
||||
|
||||
if [ -z "$VM_IP" ] || [ "$VM_IP" = "ERROR" ]; then
|
||||
echo "ERROR: Failed to provision VM"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "VM ready at $VM_IP"
|
||||
|
||||
echo "Cloning test repository..."
|
||||
git clone "$TEST_REPO" test-repo
|
||||
|
||||
SPARROWFILE=$(find test-repo -name "main.raku" -o -name "sparrowfile" | head -1)
|
||||
|
||||
if [ -z "$SPARROWFILE" ]; then
|
||||
echo "ERROR: No sparrowfile found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Running test: $SPARROWFILE"
|
||||
sparrowdo \
|
||||
--host="$VM_IP" \
|
||||
--ssh_user=rocky \
|
||||
--ssh_private_key="$SSH_KEY" \
|
||||
--ssh_args="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" \
|
||||
--no_sudo \
|
||||
--sparrowfile="$SPARROWFILE" \
|
||||
--verbose \
|
||||
--color
|
||||
|
||||
echo "Test completed successfully"
|
||||
Reference in New Issue
Block a user