Skip to content

Commit 9c9f6e7

Browse files
committed
Fix bad warning and allowing pre-packaged application source bundles.
1 parent 6e9b5f2 commit 9c9f6e7

File tree

2 files changed

+48
-26
lines changed

2 files changed

+48
-26
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ the readme for the variable name.
111111
| `AWS_CODE_DEPLOY_SERVICE_ROLE_ARN` | No | Service role arn giving permissions to use Code Deploy when creating a deployment group |
112112
| `AWS_CODE_DEPLOY_EC2_TAG_FILTERS` | No | EC2 tags to filter on when creating a deployment group |
113113
| `AWS_CODE_DEPLOY_AUTO_SCALING_GROUPS` | No | Auto Scaling groups when creating a deployment group |
114-
| `AWS_CODE_DEPLOY_APP_SOURCE` | **Yes** | The source directory used to create the deploy archive |
114+
| `AWS_CODE_DEPLOY_APP_SOURCE` | **Yes** | The source directory used to create the deploy archive or a pre-bundled tar, tgz, or zip |
115115
| `AWS_CODE_DEPLOY_S3_BUCKET` | **Yes** | The name of the S3 bucket to deploy the revision |
116116
| `AWS_CODE_DEPLOY_S3_KEY_PREFIX` | No | A prefix to use for the revision bucket key |
117117
| `AWS_CODE_DEPLOY_S3_FILENAME` | **Yes** | The destination name within S3. |

bin/aws-code-deploy.sh

+47-25
Original file line numberDiff line numberDiff line change
@@ -313,31 +313,54 @@ else
313313
fi
314314

315315

316-
317-
# ----- Compressing Source -----
316+
# ----- Application Source -----
317+
h1 "Step 6: Checking Application Source"
318318
APP_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
331323
fi
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)"
336363
fi
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

@@ -418,7 +441,6 @@ fi
418441
# ----------------------
419442
h1 "Step 9: Registering Revision"
420443

421-
BUNDLE_TYPE=${APP_LOCAL_FILE##*.}
422444
REGISTER_APP_CMD="aws deploy register-application-revision --application-name \"$APPLICATION_NAME\""
423445

424446
if [ -n "$S3_KEY_PREFIX" ]; then
@@ -444,7 +466,7 @@ runCommand "$REGISTER_APP_CMD" \
444466
# ----------------------
445467
DEPLOYMENT_DESCRIPTION="$AWS_CODE_DEPLOY_DEPLOYMENT_DESCRIPTION"
446468
h1 "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

449471
if [ -n "$DEPLOYMENT_DESCRIPTION" ]; then
450472
DEPLOYMENT_CMD="$DEPLOYMENT_CMD --description \"$DEPLOYMENT_DESCRIPTION\""
@@ -469,7 +491,7 @@ DEPLOYMENT_OVERVIEW=${AWS_CODE_DEPLOY_DEPLOYMENT_OVERVIEW:-true}
469491
if [ "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

Comments
 (0)