This is a typical deploy.sh :
(Mostly copied from https://stuff-things.net/2016/07/20/invalidate-cloudfront-and-wait/ )
#!/bin/sh # Invalidate cloudfront invalidate_cf() { distribution_id=$1 aws cloudfront create-invalidation --distribution-id $distribution_id --path '/*' } invalidate_cf_and_wait() { distribution_id=$1 id=$(invalidate_cf $distribution_id | grep Id | awk -F'"' '{ print $4}' ) echo "Waiting for invalidation $id " aws cloudfront wait invalidation-completed --id $id --distribution-id $distribution_id echo "Invalidation $id completed" } echo "Starting deployment" s3_bucket="$1" distribution_id="$2" echo "Starting s3 sync" aws s3 sync build/ $s3_bucket --delete echo "Starting cloudfront invalidation" invalidate_cf_and_wait $distribution_id echo "Finished deployment"