diff --git a/README.md b/README.md index 27162bfd7..2690b84a7 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,8 @@ Frontend tools used include [SCSS](http://sass-lang.com/) over [Foundation](http ## Configuration for development and test environments +**NOTE**: For more detailed instructions check the [docs](https://github.com/consul/consul/tree/master/doc/en/dev_test_setup.md) + Prerequisites: install git, Ruby 2.2.3, bundler gem, ghostscript and PostgreSQL (>=9.4). ``` diff --git a/doc/en/dev_test_setup.md b/doc/en/dev_test_setup.md new file mode 100644 index 000000000..7fc7c967e --- /dev/null +++ b/doc/en/dev_test_setup.md @@ -0,0 +1,9 @@ +# Configuration for development and test environments (Mac OS X) + +## Linux + +## Mac OS X + +See [here](dev_test_setup_osx.md) + +## Windows diff --git a/doc/en/dev_test_setup_osx.md b/doc/en/dev_test_setup_osx.md new file mode 100644 index 000000000..088082261 --- /dev/null +++ b/doc/en/dev_test_setup_osx.md @@ -0,0 +1,128 @@ +# Configuration for development and test environments (Mac OS X) + +## Homebrew + +Homebrew is a very popular package manager for OS X. It's advised to use it since it makes the installation of some of the dependencies much easier. + +You can find the installation instructions at: [brew.sh](http://brew.sh) + +## XCode and XCode Command Line Tools + +To install *git* you'll first need to install *Xcode* (download it from the Mac App Store) and its *Xcode Command Line Tools* (you can install them from the Xcode's app menu) + +## Git + +You can download git from: [git-scm.com/download/mac](https://git-scm.com/download/mac) + +## Ruby y rbenv + +OS X already comes with a preinstalled Ruby version, but it's quite old and we need a newer one (2.2.3). One of the multiple ways of installing Ruby in OS X is through *rbenv*. The installation instructions are in its GitHub repository and are pretty straight-forward: + +[github.com/rbenv/rbenv](https://github.com/rbenv/rbenv) + +## Bundler + +``` +gem install bundler +``` + +## PostgreSQL (>=9.4) + +``` +brew install postgres +``` + +Once installed, we need to *initialize* it: + +``` +initdb /usr/local/var/postgres +``` + +Now we're going to configure some things related to the *default user*. First we start postgres server with: + +``` +postgres -D /usr/local/var/postgres +``` + +At this point we're supposed to have postgres correctly installed and a default user will automatically be created (whose name will match our username). This user hasn't got a password yet. + +If we run `psql` we'll login into the postgres console with the default user. Probably it will fail since its required that a default database exists for that user. We can create it by typing: + +``` +createdb 'your_username' +``` + +If we run `psql` again we should now get access to postgres console. With `\du` you can see the current users list. + +In case you want to set a password for your user you can make it throught postgres console by: + +``` +ALTER USER your_username WITH PASSWORD 'your_password'; +``` + +Now we'll create the *consul* user, the one the application is using. Run in postgres console: + +``` +CREATE ROLE consul WITH PASSWORD '000'; +ALTER ROLE consul WITH SUPERUSER; +ALTER ROLE consul WITH login; +``` + +If at any point during PostgreSQL installation you feel you have messed things up, you can uninstall it and start again by running: + +``` +brew uninstall postgres +``` + +You'll have to delete also this directory (otherwise the new installation will generate conflicts, source: [gist.github.com/lxneng/741932](https://gist.github.com/lxneng/741932)): + +``` +rm -rf /usr/local/var/postgres +``` + +## Postgis + +``` +brew install postgis +``` + +## Ghostscript + +``` +brew install ghostscript +``` + +## PhantomJS + +``` +brew install phantomjs +``` + +## Cloning the repository + +Now that we have all the dependencies installed we can download the repository: + +``` +git clone https://github.com/consul/consul.git +cd consul +bundle install +cp config/database.yml.example config/database.yml +cp config/secrets.yml.example config/secrets.yml +``` + +Now copy in `database.yml` the database user and password you used for *consul*. + +After this: + +``` +rake db:create +rake db:setup +rake db:dev_seed +RAILS_ENV=test bin/rake db:setup +``` + +To run the tests: + +``` +bundle exec rspec +```