diff --git a/.gitignore b/.gitignore index e09d792f..28364b07 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ config/travis.yml .yardoc +log/ diff --git a/Gemfile b/Gemfile index c0555e45..a66a06a7 100644 --- a/Gemfile +++ b/Gemfile @@ -12,7 +12,7 @@ gem 'sinatra-contrib', github: 'sinatra/sinatra-contrib', require: nil # TODO need to release the gem as soon i'm certain this change makes sense gem 'simple_states', github: 'svenfuchs/simple_states', branch: 'sf-set-state-early' -gem 'unicorn' +gem 'puma' gem "sentry-raven", github: 'getsentry/raven-ruby' gem 'yard-sinatra', github: 'rkh/yard-sinatra' gem 'rack-contrib', github: 'rack/rack-contrib' diff --git a/Gemfile.lock b/Gemfile.lock index f575aaf8..fcd4e7af 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -112,7 +112,7 @@ PATH travis-api (0.0.1) backports (~> 2.5) hubble (~> 0.1) - newrelic_rpm (~> 3.3.0) + newrelic_rpm (~> 3.5.0) pg (~> 0.13.2) rack-contrib (~> 1.1) rack-ssl (~> 1.3) @@ -188,7 +188,6 @@ GEM i18n (0.6.1) journey (1.0.4) json (1.7.6) - kgio (2.8.0) listen (0.7.2) mail (2.4.4) i18n (>= 0.4.0) @@ -207,7 +206,7 @@ GEM multipart-post (1.1.5) net-http-persistent (2.8) net-http-pipeline (1.0.1) - newrelic_rpm (3.3.5) + newrelic_rpm (3.5.5.38) pg (0.13.2) polyglot (0.3.3) postmark (0.9.18) @@ -221,6 +220,8 @@ GEM coderay (~> 1.0.5) method_source (~> 0.8) slop (~> 3.4) + puma (1.6.3) + rack (~> 1.2) pusher (0.11.2) multi_json (~> 1.0) signature (~> 0.1.6) @@ -240,7 +241,6 @@ GEM rake (>= 0.8.7) rdoc (~> 3.4) thor (>= 0.14.6, < 2.0) - raindrops (0.10.0) rake (0.9.2.2) rdoc (3.12) json (~> 1.4) @@ -283,10 +283,6 @@ GEM polyglot polyglot (>= 0.3.1) tzinfo (0.3.35) - unicorn (4.5.0) - kgio (~> 2.6) - rack - raindrops (~> 0.7) uuidtools (2.1.3) yajl-ruby (1.1.0) yard (0.8.3) @@ -305,6 +301,7 @@ DEPENDENCIES micro_migrations! mocha (~> 0.12) pry + puma rack-cache (~> 1.2) rack-contrib! rake (~> 0.9.2) @@ -318,5 +315,4 @@ DEPENDENCIES travis-core! travis-sidekiqs! travis-support! - unicorn yard-sinatra! diff --git a/config.ru b/config.ru index 8dfdfca6..a570b9e2 100644 --- a/config.ru +++ b/config.ru @@ -5,4 +5,12 @@ ENV['RAILS_ENV'] = ENV['RACK_ENV'] $stdout.sync = true require 'travis/api/app' +require 'core_ext/module/load_constants' + +models = Travis::Model.constants.map(&:to_s) +only = [/^(ActiveRecord|ActiveModel|Travis|GH|#{models.join('|')})/] +[Travis::Api, Travis, GH].each do |target| + target.load_constants! :only => only, :skip => ['Travis::Memory', 'GH::ResponseWrapper'], :debug => false +end + run Travis::Api::App.new diff --git a/script/server b/script/server index cf218d5f..a17c4245 100755 --- a/script/server +++ b/script/server @@ -3,6 +3,6 @@ cd "$(dirname "$0")/.." [ $PORT ] || PORT=3000 [ $RACK_ENV ] || RACK_ENV=development -cmd="ruby -I lib -S bundle exec ruby -I lib -S unicorn config.ru -c config/unicorn.rb -p $PORT -E $RACK_ENV" -[[ $RACK_ENV == "development" ]] && exec rerun "$cmd -l 127.0.0.1:$PORT" +cmd="ruby -I lib -S bundle exec ruby -I lib -S puma config.ru -p $PORT -e $RACK_ENV --threads 0:16" +[[ $RACK_ENV == "development" ]] && exec rerun "$cmd -b tcp://127.0.0.1:$PORT" exec $cmd diff --git a/travis-api.gemspec b/travis-api.gemspec index eb1e3b51..38449832 100644 --- a/travis-api.gemspec +++ b/travis-api.gemspec @@ -166,7 +166,7 @@ Gem::Specification.new do |s| s.add_dependency 'hubble', '~> 0.1' s.add_dependency 'backports', '~> 2.5' s.add_dependency 'pg', '~> 0.13.2' - s.add_dependency 'newrelic_rpm', '~> 3.3.0' + s.add_dependency 'newrelic_rpm', '~> 3.5.0' s.add_dependency 'thin', '~> 1.4' s.add_dependency 'sinatra', '~> 1.3' s.add_dependency 'sinatra-contrib', '~> 1.3'