first pass at fully functional test infrastructure to work with travis ci

This commit is contained in:
Jeff Lindsay
2013-06-23 02:31:32 -07:00
parent 3a6d2c4442
commit 946973b060
8 changed files with 68 additions and 12 deletions

38
.s3cfg Normal file
View File

@@ -0,0 +1,38 @@
[default]
access_key
secret_key
bucket_location = US
cloudfront_host = cloudfront.amazonaws.com
cloudfront_resource = /2010-07-15/distribution
default_mime_type = binary/octet-stream
delete_removed = False
dry_run = False
encoding = UTF-8
encrypt = False
follow_symlinks = False
force = False
get_continue = False
gpg_command = None
gpg_decrypt = %(gpg_command)s -d --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
gpg_encrypt = %(gpg_command)s -c --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
gpg_passphrase =
guess_mime_type = True
host_base = s3.amazonaws.com
host_bucket = %(bucket)s.s3.amazonaws.com
human_readable_sizes = False
list_md5 = False
log_target_prefix =
preserve_attrs = True
progress_meter = True
proxy_host =
proxy_port = 0
recursive = False
recv_chunk = 4096
reduced_redundancy = False
send_chunk = 4096
simpledb_host = sdb.amazonaws.com
skip_existing = False
socket_timeout = 300
urlencoding_mode = normal
use_https = False
verbosity = WARNING

View File

@@ -1,2 +1,15 @@
---
script: sudo bash bootstrap.sh
script: cd tests && ./run_ec2 progrium
before_install:
- "apt-get install -y ec2-api-tools"
- "apt-get install -y s3cmd"
- "sed --in-place 's/access_key/access_key = $AWS_ACCESS_KEY' .s3cfg"
- "sed --in-place 's/secret_key/secret_key = $AWS_SECRET_KEY' .s3cfg"
- "s3cmd get s3://progrium-private/ec2_cert.pem /tmp/cert"
- "s3cmd get s3://progirum-private/ec2_pk.pem /tmp/pk"
env:
global:
- EC2_CERT=/tmp/cert
- EC2_PRIVATE_KEY=/tmp/pk
- secure: "flDyaNZ6Xn2W1JyI3N1DCzI+K7ACgAZJ38vVfSde6rmI/V2iaAR4YH+7PC/x\nb/uCW9JCl+IVq5DJ0vu59HkAXlV4i4S9gVDExygt/fAo+sfGiMWubRUZMZeC\nHKK+92kexmqGRJLU8s5wDakddMAZ4+y7QPfVdxAHp/Tuijq+9iE="
- secure: "gSYrtzzmbwumE60J9sUhIaA5vakfXnP4NtCbxha0pyepPFrlds3YO0lxoH7J\nYdG8Yl5ObdqyDNQ2Yb/FL7wmctuPZSZ3OHQNjDpOqsqOqr7M2+b8aVM8URKE\n/Lki+GP8M8kajBr6zKgIV1W+e8SZQsAazhHwKRaJJQVWT58Aghk="

View File

@@ -0,0 +1,3 @@
#!/bin/bash
set -e
test "$(curl $1)" == "nodejs/express2"

View File

@@ -12,7 +12,7 @@ terminate() {
echo "-----> Terminating $INSTANCE..."
ec2-terminate-instances $INSTANCE &>/dev/null && echo " Shutting down"
}
[[ $DEBUG ]] || trap "terminate" EXIT
[[ $NOCLEANUP ]] || trap "terminate" EXIT
sleep 30
status=""
while [[ "$status" != "running" ]]; do
@@ -32,4 +32,12 @@ while [[ ! $(echo | nc $PUBLIC_IP 22) ]]; do
echo " Waiting..."
done
echo "-----> Connecting and running boostrap script..."
cat ../bootstrap.sh | ssh -o "StrictHostKeyChecking=no" ubuntu@$PUBLIC_IP "HOSTNAME=$PUBLIC_IP sudo bash" 2>&1 | indent
cat ../bootstrap.sh | ssh -o "StrictHostKeyChecking=no" ubuntu@$PUBLIC_IP "HOSTNAME=$PUBLIC_IP sudo bash" 2>&1 | indent
echo "-----> Installing SSH public keys..."
ssh-add -L | ssh -o "StrictHostKeyChecking=no" ubuntu@$PUBLIC_IP "sudo gitreceive upload-key test" > /dev/null
ssh-add -L | ssh -o "StrictHostKeyChecking=no" ubuntu@$PUBLIC_IP "sudo sshcommand acl-add dokku test" > /dev/null
for app_path in apps/*; do
app=$(basename $app_path)
echo "-----> Running test deploy of $app..."
./test_deploy $app_path $PUBLIC_IP
done

View File

@@ -1,5 +1,5 @@
#!/bin/bash
# set -e
set -e
SELF=`which $0`; APP="$1"; TARGET="$2"
TMP=$(mktemp -d -t $TARGET)
trap "rm -rf $TMP" EXIT
@@ -11,11 +11,5 @@ git commit -m 'initial commit'
REPO="test-$RANDOM"
git remote add target git@$TARGET:$REPO
URL_FILE=$(mktemp -t url)
git push target master 2>&1 | while read line; do
echo "$line"
[[ $(echo "$line" | grep $TARGET | grep remote) ]] && echo "$line" | awk '{print $2}' > $URL_FILE
done
set -x
URL=$(<$URL_FILE)
curl -v "$URL:8080" # GAHAHHHHH WHY DOESNT THIS WORK
rm $URL_FILE
git push target master
./check_deploy "$(ssh dokku@$TARGET url $REPO)" && echo "-----> Deploy success!"