@@ -313,31 +313,54 @@ else
313313fi
314314
315315
316-
317- # ----- Compressing Source -----
316+ # ----- Application Source -----
317+ h1 " Step 6: Checking Application Source "
318318APP_SOURCE=$( readlink -f " ${AWS_CODE_DEPLOY_APP_SOURCE:- .} " )
319- APP_LOCAL_FILE=" ${AWS_CODE_DEPLOY_S3_FILENAME% .* } .zip"
320- DEPLOYMENT_COMPRESS_ORIG_DIR_SIZE=$( du -hs $APP_SOURCE | awk ' { print $1}' )
321- APP_LOCAL_TEMP_FILE=" /tmp/$APP_LOCAL_FILE "
322319
323- h1 " Step 6: Compressing Source Contents"
324- if [ ! -d " $APP_SOURCE " ]; then
325- error " The specified source directory \" ${APP_SOURCE} \" does not exist."
326- exit 1
327- fi
328- if [ ! -e " $APP_SOURCE /appspec.yml" ]; then
329- error " The specified source directory \" ${APP_SOURCE} \" does not contain an \" appspec.yml\" in the application root."
330- exit 1
320+ if [ ! -d " $APP_SOURCE " -a ! -e " $APP_SOURCE " ]; then
321+ error " The specified application source \" ${APP_SOURCE} \" does not exist."
322+ exit
331323fi
332- if ! typeExists " zip" ; then
333- note " Installing zip binaries ..."
334- sudo apt-get install -y zip
335- note " Zip binaries installed."
324+ if [ -d " $APP_SOURCE " ]; then
325+ if [ ! -e " $APP_SOURCE /appspec.yml" ]; then
326+ error " The specified source directory \" ${APP_SOURCE} \" does not contain an \" appspec.yml\" in the application root."
327+ exit 1
328+ fi
329+ if ! typeExists " zip" ; then
330+ note " Installing zip binaries ..."
331+ sudo apt-get install -y zip
332+ note " Zip binaries installed."
333+ fi
334+ DEPLOYMENT_COMPRESS_ORIG_DIR_SIZE=$( du -hs $APP_SOURCE | awk ' { print $1}' )
335+ APP_LOCAL_FILE=" ${AWS_CODE_DEPLOY_S3_FILENAME% .* } .zip"
336+ APP_LOCAL_TEMP_FILE=" /tmp/$APP_LOCAL_FILE "
337+
338+ runCommand " cd \" $APP_SOURCE \" && zip -rq \" ${APP_LOCAL_TEMP_FILE} \" ." \
339+ " Unable to compress \" $APP_SOURCE \" "
340+ DEPLOYMENT_COMPRESS_FILESIZE=$( ls -lah " ${APP_LOCAL_TEMP_FILE} " | awk ' { print $5}' )
341+ BUNDLE_TYPE=" zip"
342+ success " Successfully compressed \" $APP_SOURCE \" ($DEPLOYMENT_COMPRESS_ORIG_DIR_SIZE ) into \" $APP_LOCAL_FILE \" ($DEPLOYMENT_COMPRESS_FILESIZE )"
343+ else
344+ APP_SOURCE_BASENAME=$( basename " $APP_SOURCE " )
345+ APP_SOURCE_FILESIZE=$( ls -lah " ${APP_SOURCE} " | awk ' { print $5}' )
346+ EXTENSION=" ${APP_SOURCE#* .} "
347+
348+ if [ $EXTENSION == " tar" ]; then
349+ BUNDLE_TYPE=" tar"
350+ elif [ $EXTENSION == " tar.gz" ]; then
351+ BUNDLE_TYPE=" tgz"
352+ elif [ $EXTENSION == " zip" ]; then
353+ BUNDLE_TYPE=" zip"
354+ else
355+ error " Unsupported bundle type for application source file: ${APP_SOURCE_BASENAME} - Must be tar, zip or tgz"
356+ exit 1
357+ fi
358+
359+ APP_LOCAL_FILE=$APP_SOURCE_BASENAME
360+ APP_LOCAL_TEMP_FILE=$APP_SOURCE
361+
362+ success " Valid source file: $APP_SOURCE_BASENAME ($BUNDLE_TYPE ) ($APP_SOURCE_FILESIZE )"
336363fi
337- runCommand " cd \" $APP_SOURCE \" && zip -rq \" ${APP_LOCAL_TEMP_FILE} \" ." \
338- " Unable to compress \" $APP_SOURCE \" "
339- DEPLOYMENT_COMPRESS_FILESIZE=$( ls -lah " ${APP_LOCAL_TEMP_FILE} " | awk ' { print $5}' )
340- success " Successfully compressed \" $APP_SOURCE \" ($DEPLOYMENT_COMPRESS_ORIG_DIR_SIZE ) into \" $APP_LOCAL_FILE \" ($DEPLOYMENT_COMPRESS_FILESIZE )"
341364
342365
343366
418441# ----------------------
419442h1 " Step 9: Registering Revision"
420443
421- BUNDLE_TYPE=${APP_LOCAL_FILE##* .}
422444REGISTER_APP_CMD=" aws deploy register-application-revision --application-name \" $APPLICATION_NAME \" "
423445
424446if [ -n " $S3_KEY_PREFIX " ]; then
@@ -444,7 +466,7 @@ runCommand "$REGISTER_APP_CMD" \
444466# ----------------------
445467DEPLOYMENT_DESCRIPTION=" $AWS_CODE_DEPLOY_DEPLOYMENT_DESCRIPTION "
446468h1 " Step 10: Creating Deployment"
447- DEPLOYMENT_CMD=" aws deploy create-deployment --application-name $APPLICATION_NAME --deployment-config-name $DEPLOYMENT_CONFIG_NAME --deployment-group-name $DEPLOYMENT_GROUP --s3-location $S3_LOCATION "
469+ DEPLOYMENT_CMD=" aws deploy create-deployment --output json -- application-name $APPLICATION_NAME --deployment-config-name $DEPLOYMENT_CONFIG_NAME --deployment-group-name $DEPLOYMENT_GROUP --s3-location $S3_LOCATION "
448470
449471if [ -n " $DEPLOYMENT_DESCRIPTION " ]; then
450472 DEPLOYMENT_CMD=" $DEPLOYMENT_CMD --description \" $DEPLOYMENT_DESCRIPTION \" "
@@ -469,7 +491,7 @@ DEPLOYMENT_OVERVIEW=${AWS_CODE_DEPLOY_DEPLOYMENT_OVERVIEW:-true}
469491if [ " true" = " $DEPLOYMENT_OVERVIEW " ]; then
470492 h1 " Deployment Overview"
471493
472- DEPLOYMENT_GET=" aws deploy get-deployment --deployment-id \" $DEPLOYMENT_ID \" "
494+ DEPLOYMENT_GET=" aws deploy get-deployment --output json -- deployment-id \" $DEPLOYMENT_ID \" "
473495 h2 " Monitoring deployment \" $DEPLOYMENT_ID \" for \" $APPLICATION_NAME \" on deployment group $DEPLOYMENT_GROUP ..."
474496 info " $DEPLOYMENT_GET "
475497 printf " \n"
@@ -478,7 +500,7 @@ if [ "true" = "$DEPLOYMENT_OVERVIEW" ]; then
478500 do
479501 DEPLOYMENT_GET_OUTPUT=" $( eval $DEPLOYMENT_GET 2>&1 ) "
480502 if [ $? != 0 ]; then
481- warn " $DEPLOYMENT_GET_OUTPUT "
503+ warnError " $DEPLOYMENT_GET_OUTPUT "
482504 error " Deployment of application \" $APPLICATION_NAME \" on deployment group \" $DEPLOYMENT_GROUP \" failed"
483505 exit 1
484506 fi
0 commit comments