...
Generated with Raygun.
To run the specs or fire up the server, be sure you have these installed (and running):
- Ruby 2.3 (see .ruby-version).
- PostgreSQL 9.x (
brew install postgresql
) with superuser 'postgres' with no password (createuser -s postgres
). - PhantomJS 2.x for Capybara testing (
brew install phantomjs
).
After cloning, run ./bin/setup to install missing gems and prepare the database.
Note, rake db:sample_data
(run as part of setup) loads a small set of data for development. Check out
db/sample_data.rb for details.
To run all Ruby and Javascript specs.
$ ./bin/rake
Note: ./bin/rake
runs the springified version of rake (there's a ./bin/rspec
and ./bin/rails
too). You can add
./bin
to your PATH too, then you'll always use the springified bins when they exist. See
rails/spring for additional information.
$ 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 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 verifying 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.FORCE_SSL
- Require all requests to come over a secure connection (default: false).BASIC_AUTH_PASSWORD
- Enable basic auth with this password.BASIC_AUTH_USER
- Set a basic auth username (not required, password enables basic auth).ASSET_HOST
- Asset host for static assets (e.g. CDN) (default: none).PORT
- Port to listen on (default: 3000).PUMA_WORKERS
- Number of puma workers to spawn (default: 1).PUMA_THREADS
- Threads per worker (default: 5).DB_POOL
- Number of DB connections per pool (i.e. per worker) (default: PUMA_THREADS or 5).RAILS_LOG_TO_STDOUT
- Log to standard out, good for Heroku (default: false).RAILS_SERVE_STATIC_FILES
- Serve static assets, good for Heroku (default: false).
- Heroku for hosting.
- CircleCI for continuous integration and deployment.