From e97dd437f63381222df337cb81247d68ec0157f5 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Sat, 19 Jan 2013 18:21:47 +0100 Subject: [PATCH 1/6] Update newrelic --- Gemfile.lock | 4 ++-- travis-api.gemspec | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 41274783..4ed4fc34 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) @@ -207,7 +207,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) 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' From c1da6228a7df5f14f2a7b1bb2682052e7324263b Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Sat, 19 Jan 2013 19:41:23 +0100 Subject: [PATCH 2/6] Use thin as a webserver (hopefully it fixes new relic --- Gemfile | 2 +- Gemfile.lock | 8 +------- script/server | 4 ++-- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/Gemfile b/Gemfile index c0555e45..6a67fe8d 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 'thin' 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 4ed4fc34..3ba91172 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -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) @@ -240,7 +239,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 +281,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) @@ -314,9 +308,9 @@ DEPENDENCIES simple_states! sinatra! sinatra-contrib! + thin travis-api! travis-core! travis-sidekiqs! travis-support! - unicorn yard-sinatra! diff --git a/script/server b/script/server index cf218d5f..569491a1 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 thin start -p $PORT -e $RACK_ENV" #--threaded" +[[ $RACK_ENV == "development" ]] && exec rerun "$cmd -a 127.0.0.1" exec $cmd From 7bd90a4ef39bd614a4a9b72b85af037af7760ef0 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Sat, 19 Jan 2013 20:07:28 +0100 Subject: [PATCH 3/6] Use puma as a webserver, try to preload constants --- Gemfile | 2 +- Gemfile.lock | 6 ++++-- config.ru | 6 ++++++ script/server | 4 ++-- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 6a67fe8d..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 'thin' +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 3ba91172..dc3c6024 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -96,7 +96,7 @@ GIT GIT remote: git://github.com/travis-ci/travis-support.git - revision: a214c215e1b52bdf4d3ab5d31e7e2df52fad5a0c + revision: cf916e10949db43ce6f2b6f86082b367f04acfcd specs: travis-support (0.0.1) @@ -220,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) @@ -299,6 +301,7 @@ DEPENDENCIES micro_migrations! mocha (~> 0.12) pry + puma rack-cache (~> 1.2) rack-contrib! rake (~> 0.9.2) @@ -308,7 +311,6 @@ DEPENDENCIES simple_states! sinatra! sinatra-contrib! - thin travis-api! travis-core! travis-sidekiqs! diff --git a/config.ru b/config.ru index 8dfdfca6..62261c2b 100644 --- a/config.ru +++ b/config.ru @@ -5,4 +5,10 @@ ENV['RAILS_ENV'] = ENV['RACK_ENV'] $stdout.sync = true require 'travis/api/app' +require 'core_ext/module/load_constants' + +[Travis::Api, Travis, GH].each do |target| + target.load_constants!(:only => [/^Travis/, /^GH/], :skip => ['Travis::Memory', 'GH::ResponseWrapper'], :debug => true) +end + run Travis::Api::App.new diff --git a/script/server b/script/server index 569491a1..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 thin start -p $PORT -e $RACK_ENV" #--threaded" -[[ $RACK_ENV == "development" ]] && exec rerun "$cmd -a 127.0.0.1" +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 From f2e596ec890ce855459c59169f8cf53befe83c06 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Sat, 19 Jan 2013 22:35:44 +0100 Subject: [PATCH 4/6] Preload also models --- config.ru | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config.ru b/config.ru index 62261c2b..12cb49d8 100644 --- a/config.ru +++ b/config.ru @@ -7,8 +7,8 @@ $stdout.sync = true require 'travis/api/app' require 'core_ext/module/load_constants' -[Travis::Api, Travis, GH].each do |target| - target.load_constants!(:only => [/^Travis/, /^GH/], :skip => ['Travis::Memory', 'GH::ResponseWrapper'], :debug => true) -end +models = Travis::Model.constants.map(&:to_s) +only = [/^(ActiveRecord|ActiveModel|Travis|GH|#{models.join('|')})/] +Travis.load_constants! :only => only, :skip => ['Travis::Memory', 'GH::ResponseWrapper'], :debug => false run Travis::Api::App.new From 046b396b9e35d17ce9a2854d71db1ea9dac28d74 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Sat, 19 Jan 2013 22:35:57 +0100 Subject: [PATCH 5/6] Ignore log dir --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index e09d792f..28364b07 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ config/travis.yml .yardoc +log/ From a2018bc0f1c7ed626a5d833ad0648670e82e1055 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Sat, 19 Jan 2013 23:08:47 +0100 Subject: [PATCH 6/6] Explicitly load constants on Travis::Api For some reason not loading it broke new relic notifications --- config.ru | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/config.ru b/config.ru index 12cb49d8..a570b9e2 100644 --- a/config.ru +++ b/config.ru @@ -9,6 +9,8 @@ require 'core_ext/module/load_constants' models = Travis::Model.constants.map(&:to_s) only = [/^(ActiveRecord|ActiveModel|Travis|GH|#{models.join('|')})/] -Travis.load_constants! :only => only, :skip => ['Travis::Memory', 'GH::ResponseWrapper'], :debug => false +[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