git-s3-push is a tool to deploy git repositories to AWS S3 buckets. git-s3-push keeps track of which commits have been pushed and supports deploying only recently modified files. It can be used for deploying static websites hosted on S3, maintaining versioned bucket data or using S3 to backup git repositories.
- Simple method to deploy git repos to S3.
- Fast uploads by only uploading new commits.
- Single binary, no dependencies on language runtimes
Grab a binary for your platform from the releases. Or check out the code, run go get
and go run git-s3-push.go
.
Git must be installed on your path.
Authentication credentials are taken from the standard AWS environment variables. Bucket name and AWS region are supplied as arguments.
$ export AWS_ACCESS_KEY_ID=<...>
$ export AWS_SECRET_ACCESS_KEY=<...>
$ git-s3-push -b my-bucket-name -r aws-region-1 -save
The -save
flag stores the bucket name and region so you can push to the same location by just running:
$ git-s3-push
All usage options can be shown using the -help
flag.
After using the -save
flag, git-s3-push
creates a JSON configuration file (.git_s3_push
) storing bucket and region information. This file also includes other configuration directives that cannot be specified using flags:
Ignore
: Files in the git repo that should not be pushed. This could include source files (for example .coffee files), or any other file in the git repository you don't want pushed to the S3 bucket. Files are specified in a JSON list of Go regexes. For example:
"Ignore":[".*\\.coffee"]
IncludeNonGit
: Files not tracked by git that should be pushed to the destination bucket. Files are specified in a JSON list of paths. Paths can be absolute or relative to the root of the git repository.
- MIT license. See the LICENSE file.