This is the imperialwicket.com blog, powered by Hugo, hosted on S3/Cloudfront.
A post-commit like this works great for me, since everytime I commit to master, I want s3 to sync:
#!/bin/bash # # Deploy to s3 when master gets updated. # # This expects (and does NOT check for) s3cmd to be installed and configured! # This expects (and does NOT check for) hugo to be installed and on your $PATH bucket='yourBucketName' prefix='' branch=$(git rev-parse --abbrev-ref HEAD) if [[ "$branch" == "master" ]]; then hugo echo "Syncing public/* with s3://$bucket/$prefix." s3cmd --acl-public --delete-removed --no-progress sync public/* s3://$bucket/$prefix echo -e "\nUpdated s3://$bucket/$prefix." else echo "*** s3://$bucket/$prefix only syncs when master branch is updated! ***" fi exit 0
Only updating in master lets me investigate template updates and overhauls in alternate branches without worrying about stray deploys.