S3 Cmd
I am a huge fan of S3cmd, a command line utility for pushing files to S3 buckets. Below is a bash script I use to push to an S3 bucket.
#!/bin/bash
set -e
branch_name=$(git rev-parse --abbrev-ref HEAD)
if [ "$branch_name" == "master"]; then
cp style.css build/style.css
cp app.js build/app.js
cp index.html build/index.html
s3cmd sync --recursive build/ s3://<s3-bucket-name>
echo -e "\t Successfully deployed to S3"
fi
First, I define a branch_name
variable. Then, when pushing to the master branch in GitHub, a pre-push git hook pushes your changes to a S3 bucket before the changes are committed to GitHub. To try this yourself, put the above bash script in $ touch .git/hooks/pre-push
.
I have success with this strategy along with S3 static bucket hosting for websites on AWS S3. Changes to my S3 websites auto push, leaving me with less things to do.