...
Generated with Raygun.
To run the specs or fire up the server, be sure you have these installed:
- Ruby 2.1 (see .ruby-version).
- PostgreSQL 9.x (
brew install postgresql
) with superuser 'postgres' with no password (createuser -s postgres
). - PhantomJS for Capybara and Javascript testing (
brew install phantomjs
).
After cloning, run these commands to install missing gems and prepare the database.
$ gem install bundler
$ bundle
$ rake db:setup db:sample_data
Note, rake db:sample_data
loads a small set of data for development. Check out db/sample_data.rb
for details.
To run all Ruby and Javascript specs.
$ rake
$ foreman start
$ open http://localhost:3000
- Branch
development
is auto-deployed to acceptance. - Branch
master
is auto-deployed to production. - Create feature branches off of
development
using the naming convention(features|chores|bugs)/a-brief-description-######
, where ###### is the tracker id. - Rebase your branch before merging into
development
to produce clean merge bubbles. - Retain merge commits for multi-commit branches when merging into
development
(e.g.git merge --no-ff branchname
). - Craft atomic commits that make sense on their own and can be easily cherry-picked or reverted if necessary.
Generally speaking, follow the Ruby Style Guide. Additionally, these are other guidelines adopted by the team:
Always use double quotes for test/spec descriptions, unless the subject is a class/module.
describe SomeController do
context "when logged in as an admin" do
describe "#some_method" do
it "does some thing"
end
end
end
Coverage for the ruby specs:
$ COVERAGE=true rspec
Code coverage is reported to Code Climate on every CI build so there's a record of trending.
Guard is configured to run ruby and jasmine specs, and also listen for livereload connections.
$ bundle exec guard
$ gem install mailcatcher
$ mailcatcher
$ open http://localhost:1080/
Learn more at mailcatcher.me. And please don't add mailcatcher to the Gemfile.
This project is configured for continuous integration and deployment with CircleCI and Heroku.
Check out circle.yml and bin/deploy.sh for details.
Acceptance and Production are hosted on Heroku under the email@example.com account.
Several common features and operational parameters can be set using environment variables.
Required
SECRET_KEY_BASE
- Secret key base for verfying signed cookies. Should be 30+ random characters and secret!
Optional
HOSTNAME
- Canonical hostname for this application. Other incoming requests will be redirected to this hostname.BASIC_AUTH_PASSWORD
- Enable basic auth with this password.BASIC_AUTH_USER
- Set a basic auth username (not required, password enables basic auth).PORT
- Port to listen on (default: 3000).UNICORN_WORKERS
- Number of unicorn workers to spawn (default: development 1, otherwise 3).UNICORN_BACKLOG
- Depth of unicorn backlog (default: 16).
- Heroku for hosting.
- CircleCI for continuous integration and deployment.