To develop on this gem, you must the following installed:
- a sane Ruby 1.9+ environment with
bundler
$ gem install bundler
- Docker v1.3.1 or greater
- Clone the git repository from Github:
$ git clone git@github.com:swipely/docker-api.git
- Install the dependencies using Bundler
$ bundle install
- Create a branch for your changes
$ git checkout -b my_bug_fix
- Make any changes
- Write tests to support those changes.
- Run the tests:
bundle exec rake vcr:test
- Assuming the tests pass, open a Pull Request on Github.
This repository comes with five Rake commands to assist in your testing of the code.
This command will run Rspec tests normally on your local system. Be careful that VCR will behave "weirdly" if you currently have the Docker daemon running.
This command runs a code quality threshold checker to hinder bad code.
This gem uses VCR to record and replay HTTP requests made to the Docker API. The vcr
namespace is used to record and replay spec tests inside of a Docker container. This will allow each developer to run and rerecord VCR cassettes in a consistent environment.
Certain Rspec tests will require your credentials to the Docker Hub. If you do not have a Docker Hub account, you can sign up for one here. To avoid hard-coding credentials into the code the test suite leverages three Environment Variables: DOCKER_API_USER
, DOCKER_API_PASS
, and DOCKER_API_EMAIL
. You will need to configure your work environment (shell profile, IDE, etc) with these values in order to successfully re-record VCR cassettes.
export DOCKER_API_USER='your_docker_hub_user'
export DOCKER_API_PASS='your_docker_hub_password'
export DOCKER_API_EMAIL='your_docker_hub_email_address'
This command will download the necessary Docker images and then run the Rspec tests while recording your VCR cassettes.
This command will download the necessary Docker image.
This is the command you will use to record a new set of VCR cassettes. This command runs the following procedures:
- Delete the existing
spec/vcr
directory. - Launch a temporary local Docker registry
- Record new VCR cassettes by running the Rspec test suite against a live Docker daemon.