Files
dokku/tests/run_ec2
2013-06-23 16:39:00 -07:00

45 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
KEYNAME="$1"
indent() { sed "s/^/ /"; }
echo "-----> Booting EC2 instance..."
start=$(ec2-run-instances -k $1 ami-f3d1bb9a 2>&1 )
if [[ $? > 0 ]]; then
echo "$start" | indent
exit 3
fi
INSTANCE=$(echo "$start" | awk '/^INSTANCE/ {print $2}')
terminate() {
echo "-----> Terminating $INSTANCE..."
ec2-terminate-instances $INSTANCE &>/dev/null && echo " Shutting down"
}
[[ $NOCLEANUP ]] || trap "terminate" EXIT
sleep 30
status=""
while [[ "$status" != "running" ]]; do
info=$(ec2-describe-instances 2>/dev/null | grep $INSTANCE)
status=$(echo "$info" | cut -f 6 | grep run)
echo " Waiting..."
sleep 5
if [[ $status == "running" ]]; then
echo "-----> $INSTANCE has succesfully booted!"
break
fi
done
PUBLIC_IP=$(echo "$info" | awk '{print $14}')
echo "-----> Waiting for SSH at $PUBLIC_IP..."
while [[ ! $(echo | nc $PUBLIC_IP 22) ]]; do
sleep 5
echo " Waiting..."
done
set -e
echo "-----> Connecting and running boostrap script..."
cat ../bootstrap.sh | ssh -o "StrictHostKeyChecking=no" ubuntu@$PUBLIC_IP "HOSTNAME=$PUBLIC_IP sudo bash" 2>&1 | indent
echo "-----> Installing SSH public keys..."
cat ~/.ssh/id_rsa.pub
cat ~/.ssh/id_rsa.pub | ssh -o "StrictHostKeyChecking=no" ubuntu@$PUBLIC_IP "sudo gitreceive upload-key test"
cat ~/.ssh/id_rsa.pub | ssh -o "StrictHostKeyChecking=no" ubuntu@$PUBLIC_IP "sudo sshcommand acl-add dokku test"
for app_path in apps/*; do
app=$(basename $app_path)
echo "-----> Running test deploy of $app..."
./test_deploy $app_path $PUBLIC_IP
done