README.md in gz_release-0.0.9 vs README.md in gz_release-0.0.12
- old
+ new
@@ -18,10 +18,76 @@
$ gem install gz_release
## Usage
-TODO: Write usage instructions here
+### Rakefile
+
+Add the following to your `Rakefile`:
+
+``` ruby
+require 'gz_release'
+
+GzRelease::Tasks.install(
+ image_name: 'gazelle/<PROJECT_NAME>'
+)
+```
+
+This gives you a bunch of rake tasks:
+
+```
+rake release:build # Builds the docker image from generated Dockerfile
+rake release:dump # Dumps docker cache into ~/.docker/image.tar
+rake release:load # Loads ~/.docker/image.tar into docker cache
+rake release:pull # Pulls latest version of the image from dockerhub
+rake release:push:branch # Pushes docker image tagged as current git branch
+rake release:push:latest # Pushes docker image tagged as latest
+rake release:push:release # Pushes docker image tagged as release
+rake release:push:timestamp # Pushes docker image and git tag tagged by the timestamp
+rake release:push:version # Pushes docker image tagged as version specified in Rakefile
+rake release:tag:branch # Creates a tag for the branch for the docker image
+rake release:tag:latest # Creates latest tag for the docker image
+rake release:tag:release # Creates release tag for the docker image
+rake release:tag:timestamp # Creates timestamp tag for the docker image and git repo
+rake release:tag:version # Creates a tag for version specified in Rakefile for docker image
+```
+
+### Environment variables
+
+The following evironment variables are required for pushing to a docker repository: `DOCKER_USER`, `DOCKER_EMAIL`, `DOCKER_PASSWORD`. They are the same values you provide when doing `docker login`. It's best to use an organization account for these values on CircleCI.
+
+Optionally, you can also set `DOCKER_REPOSITORY` (e.g. tutum.co), which will cause the image to be tagged for and pushed to that repository.
+
+### Building on CircleCI
+
+Create the environment variables for your project listed above on CircleCI. You can then have CircleCI build the docker image by creating a `circle.yml` including the following:
+
+``` yaml
+machine:
+ services:
+ - docker
+checkout:
+ pre:
+ - git config --global user.email "circleci@gazelle.com"
+ - git config --global user.name "Gazelle CircleCI Bot"
+deployment:
+ all:
+ branch: /^(?!(master|dev)).*$/
+ commands:
+ - bundle exec rake release:build
+ - bundle exec rake release:push:branch
+ master:
+ branch: master
+ commands:
+ - bundle exec rake release:build
+ - bundle exec rake release:push:timestamp
+ - bundle exec rake release:push:release
+ dev:
+ branch: dev
+ commands:
+ - bundle exec rake release:build
+ - bundle exec rake release:push:latest
+```
## Contributing
1. Fork it ( https://github.com/[my-github-username]/gz_release/fork )
2. Create your feature branch (`git checkout -b my-new-feature`)