From 0e43360f1d27770819838e221f62f1c9be589632 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Hendricksen?= Date: Mon, 30 May 2016 15:31:19 +0200 Subject: [PATCH 1/9] ignore my gemset --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index e51c7335..bc1ee12d 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ vendor .yardoc .coverage *.env +.ruby-gemset From 2ded8ac2be61df1baf11ec85749f8ad79d1749cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Hendricksen?= Date: Mon, 30 May 2016 17:16:27 +0200 Subject: [PATCH 2/9] some changes to get errors to report to Sentry --- lib/travis/api/app.rb | 4 ++-- lib/travis/api/app/error_handling.rb | 2 +- script/console | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/travis/api/app.rb b/lib/travis/api/app.rb index 624b3fc7..ad8575df 100644 --- a/lib/travis/api/app.rb +++ b/lib/travis/api/app.rb @@ -102,7 +102,7 @@ module Travis::Api use(Rack::Config) { |env| env['metriks.request.start'] ||= Time.now.utc } use Travis::Api::App::Cors # if Travis.env == 'development' ??? - use Raven::Rack if Travis.env == 'production' || Travis.env == 'staging' + use Raven::Rack if Travis::Api::App.use_monitoring? use Rack::SSL if Endpoint.production? use ActiveRecord::ConnectionAdapters::ConnectionManagement use ActiveRecord::QueryCache @@ -192,7 +192,7 @@ module Travis::Api end end - if use_monitoring? and not console? + if use_monitoring? && !console setup_monitoring end end diff --git a/lib/travis/api/app/error_handling.rb b/lib/travis/api/app/error_handling.rb index 68e69556..28e6fab3 100644 --- a/lib/travis/api/app/error_handling.rb +++ b/lib/travis/api/app/error_handling.rb @@ -9,7 +9,7 @@ class Travis::Api::App Thread.new do loop do begin - Raven.send queue.pop + Raven.send :send_event, queue.pop rescue Exception => e puts e.message, e.backtrace end diff --git a/script/console b/script/console index a6b9aed7..4fcc042b 100755 --- a/script/console +++ b/script/console @@ -16,7 +16,7 @@ end V3 = Travis::API::V3 -Travis::Api::App.setup +Travis::Api::App.new console = Travis::Console.new methods = Travis::Console.instance_methods - Object.instance_methods From d7d8e3bbe369373bb605b66394d60b8d0b22fae8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Hendricksen?= Date: Mon, 30 May 2016 17:26:44 +0200 Subject: [PATCH 3/9] use the method directly --- lib/travis/api/app/error_handling.rb | 2 +- travis-api.gemspec | 86 +++++++++++++++++++++------- 2 files changed, 65 insertions(+), 23 deletions(-) diff --git a/lib/travis/api/app/error_handling.rb b/lib/travis/api/app/error_handling.rb index 28e6fab3..5eaf12ae 100644 --- a/lib/travis/api/app/error_handling.rb +++ b/lib/travis/api/app/error_handling.rb @@ -9,7 +9,7 @@ class Travis::Api::App Thread.new do loop do begin - Raven.send :send_event, queue.pop + Raven.send_event queue.pop rescue Exception => e puts e.message, e.backtrace end diff --git a/travis-api.gemspec b/travis-api.gemspec index 472324a1..8d25e9c8 100644 --- a/travis-api.gemspec +++ b/travis-api.gemspec @@ -17,62 +17,82 @@ Gem::Specification.new do |s| "Mathias Meyer", "Josh Kalderimis", "Henrik Hodne", + "Steffen Kötte", + "Ana Rosas", "Tyranja", + "Lennard Wolf", + "Steffen", + "Jonas Chromik", "Dan Buch", "Andre Arko", - "C. Scott Ananian", "Erik Michaels-Ober", - "Brian Ford", + "C. Scott Ananian", + "Christopher Weyand", "Lisa P", + "Brian Ford", + "Renée Hendricksen", "Steve Richert", - "Bryan Goldstein", - "Dan Rice", - "James Dennes", - "María de Antón", "Nick Schonning", - "Patrick Williams", + "Lucas CHERIFI", "Puneeth Chaganti", + "Bryan Goldstein", + "James Dennes", + "Igor Wiedler", + "rainsun", + "Igor", "Thais Camilo and Konstantin Haase", "Tim Carey-Smith", + "Dan Rice", "Zachary Scott", - "rainsun" + "María de Antón", + "Patrick Williams" ] s.email = [ "konstantin.mailinglists@googlemail.com", "drogus@gmail.com", - "me@svenfuchs.com", "carla@travis-ci.com", + "me@svenfuchs.com", "asari.ruby@gmail.com", "meyer@paperplanes.de", "josh.kalderimis@gmail.com", - "me@henrikhodne.com", + "steffen.koette@gmail.com", "carlad@users.noreply.github.com", + "me@henrikhodne.com", "henrik@hodne.io", "carla@travis-ci.org", - "konstantin.haase@gmail.com", + "a.rosas10@gmail.com", "tyranja@cassiopeia.uberspace.de", - "andre@arko.net", + "konstantin.haase@gmail.com", + "lennardwolf@live.de", + "steffen.koette@gmail.com", + "Jonas.Chromik@student.hpi.uni-potsdam.de", "dan@travis-ci.org", "svenfuchs@artweb-design.de", - "cscott@cscott.net", + "andre@arko.net", + "christopher.weyand@student.hpi.de", "sferik@gmail.com", + "cscott@cscott.net", + "steve.richert@gmail.com", "bford@engineyard.com", "henrik@travis-ci.com", "mail@lislis.de", - "steve.richert@gmail.com", - "brysgo@gmail.com", - "dan@meatballhat.com", - "dan@zoombody.com", - "jdennes@gmail.com", - "MariadeAnton@users.noreply.github.com", - "nschonni@gmail.com", + "renee@travis-ci.org", "patrick@bittorrent.com", - "punchagan@muse-amuse.in", + "rainsuner@gmail.com", + "nschonni@gmail.com", + "MariadeAnton@users.noreply.github.com", + "lucas@cherifi.info", + "jdennes@gmail.com", + "igor@travis-ci.org", "dev+narwen+rkh@rkh.im", "tim@spork.in", + "igorwwwwwwwwwwwwwwwwwwww@users.noreply.github.com", "e@zzak.io", - "rainsuner@gmail.com" + "dan@zoombody.com", + "dan@meatballhat.com", + "brysgo@gmail.com", + "punchagan@muse-amuse.in" ] s.files = [ @@ -152,6 +172,7 @@ Gem::Specification.new do |s| "lib/travis/api/app/services/schedule_request.rb", "lib/travis/api/app/stack_instrumentation.rb", "lib/travis/api/attack.rb", + "lib/travis/api/enqueue/services/enqueue_build.rb", "lib/travis/api/instruments.rb", "lib/travis/api/serializer.rb", "lib/travis/api/v2.rb", @@ -203,6 +224,7 @@ Gem::Specification.new do |s| "lib/travis/api/v3/models/broadcast.rb", "lib/travis/api/v3/models/build.rb", "lib/travis/api/v3/models/commit.rb", + "lib/travis/api/v3/models/cron.rb", "lib/travis/api/v3/models/email.rb", "lib/travis/api/v3/models/job.rb", "lib/travis/api/v3/models/log.rb", @@ -223,6 +245,7 @@ Gem::Specification.new do |s| "lib/travis/api/v3/permissions.rb", "lib/travis/api/v3/permissions/account.rb", "lib/travis/api/v3/permissions/build.rb", + "lib/travis/api/v3/permissions/cron.rb", "lib/travis/api/v3/permissions/generic.rb", "lib/travis/api/v3/permissions/job.rb", "lib/travis/api/v3/permissions/organization.rb", @@ -235,6 +258,8 @@ Gem::Specification.new do |s| "lib/travis/api/v3/queries/broadcasts.rb", "lib/travis/api/v3/queries/build.rb", "lib/travis/api/v3/queries/builds.rb", + "lib/travis/api/v3/queries/cron.rb", + "lib/travis/api/v3/queries/crons.rb", "lib/travis/api/v3/queries/job.rb", "lib/travis/api/v3/queries/jobs.rb", "lib/travis/api/v3/queries/organization.rb", @@ -259,6 +284,8 @@ Gem::Specification.new do |s| "lib/travis/api/v3/renderer/builds.rb", "lib/travis/api/v3/renderer/collection_renderer.rb", "lib/travis/api/v3/renderer/commit.rb", + "lib/travis/api/v3/renderer/cron.rb", + "lib/travis/api/v3/renderer/crons.rb", "lib/travis/api/v3/renderer/error.rb", "lib/travis/api/v3/renderer/job.rb", "lib/travis/api/v3/renderer/jobs.rb", @@ -288,6 +315,12 @@ Gem::Specification.new do |s| "lib/travis/api/v3/services/build/find.rb", "lib/travis/api/v3/services/build/restart.rb", "lib/travis/api/v3/services/builds/find.rb", + "lib/travis/api/v3/services/cron/create.rb", + "lib/travis/api/v3/services/cron/delete.rb", + "lib/travis/api/v3/services/cron/find.rb", + "lib/travis/api/v3/services/cron/for_branch.rb", + "lib/travis/api/v3/services/crons/for_repository.rb", + "lib/travis/api/v3/services/crons/start.rb", "lib/travis/api/v3/services/job/cancel.rb", "lib/travis/api/v3/services/job/debug.rb", "lib/travis/api/v3/services/job/find.rb", @@ -332,6 +365,7 @@ Gem::Specification.new do |s| "script/console", "script/repos_stats.rb", "script/server", + "script/start_crons", "script/web_concurrency", "spec/active_record_postgres_variables_spec.rb", "spec/integration/error_handling_spec.rb", @@ -415,6 +449,8 @@ Gem::Specification.new do |s| "spec/v3/error_handling_spec.rb", "spec/v3/extensions/belongs_to_spec.rb", "spec/v3/metrics_spec.rb", + "spec/v3/models/cron_spec.rb", + "spec/v3/queries/cron_spec.rb", "spec/v3/renderer/avatar_url_spec.rb", "spec/v3/result_spec.rb", "spec/v3/service_index_spec.rb", @@ -426,6 +462,11 @@ Gem::Specification.new do |s| "spec/v3/services/build/find_spec.rb", "spec/v3/services/build/restart_spec.rb", "spec/v3/services/builds/find_spec.rb", + "spec/v3/services/cron/create_spec.rb", + "spec/v3/services/cron/delete_spec.rb", + "spec/v3/services/cron/find_spec.rb", + "spec/v3/services/cron/for_branch_spec.rb", + "spec/v3/services/crons/for_repository_spec.rb", "spec/v3/services/job/cancel_spec.rb", "spec/v3/services/job/debug_sepc.rb", "spec/v3/services/job/find_spec.rb", @@ -443,6 +484,7 @@ Gem::Specification.new do |s| "spec/v3/services/repository/star_spec.rb", "spec/v3/services/repository/unstar_spec.rb", "spec/v3/services/requests/create_spec.rb", + "spec/v3/services/requests/find_spec.rb", "spec/v3/services/user/current_spec.rb", "spec/v3/services/user/find_spec.rb", "spec/v3/services/user/sync_spec.rb", From 21c714ae97e73a21c4aa97933e21a511f5b513c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Hendricksen?= Date: Mon, 30 May 2016 17:31:37 +0200 Subject: [PATCH 4/9] fix the test --- spec/integration/error_handling_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/integration/error_handling_spec.rb b/spec/integration/error_handling_spec.rb index 8e04d1d2..246a0eb7 100644 --- a/spec/integration/error_handling_spec.rb +++ b/spec/integration/error_handling_spec.rb @@ -26,7 +26,7 @@ describe 'Exception' do it 'enques error into a thread' do error = TestError.new('Konstantin broke all the thingz!') Travis::Api::App::Endpoint::Repos.any_instance.stubs(:service).raises(error) - Raven.expects(:send).with do |event| + Raven.expects(:send_event).with do |event| event.message == "#{error.class}: #{error.message}" end expect { get "/repos" }.to raise_error(TestError) From a8b70f51f3fbf19b9aff5bdd644257caab74d1e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Hendricksen?= Date: Mon, 30 May 2016 17:51:04 +0200 Subject: [PATCH 5/9] code error we want to see on staging --- lib/travis/api/v2/http/repositories.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/travis/api/v2/http/repositories.rb b/lib/travis/api/v2/http/repositories.rb index 84871d16..13eac08e 100644 --- a/lib/travis/api/v2/http/repositories.rb +++ b/lib/travis/api/v2/http/repositories.rb @@ -8,6 +8,7 @@ module Travis attr_reader :repositories, :options def initialize(repositories, options = {}) + this is a test to throw an error on staging @repositories = repositories @options = options end From ace3e588eadd61ba7e6932be067580fc8a2f6826 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Hendricksen?= Date: Mon, 30 May 2016 17:57:48 +0200 Subject: [PATCH 6/9] forgot this and it's not tested --- lib/travis/api/app.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/travis/api/app.rb b/lib/travis/api/app.rb index ad8575df..4c30857c 100644 --- a/lib/travis/api/app.rb +++ b/lib/travis/api/app.rb @@ -192,7 +192,7 @@ module Travis::Api end end - if use_monitoring? && !console + if use_monitoring? && !console? setup_monitoring end end From 8c6477c247a0c0dd6a654543571501c8ecb370ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Hendricksen?= Date: Mon, 30 May 2016 18:05:25 +0200 Subject: [PATCH 7/9] try another spot to throw and error --- lib/travis/api/app/endpoint/repos.rb | 1 + lib/travis/api/v2/http/repositories.rb | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/travis/api/app/endpoint/repos.rb b/lib/travis/api/app/endpoint/repos.rb index b4f98438..023304df 100644 --- a/lib/travis/api/app/endpoint/repos.rb +++ b/lib/travis/api/app/endpoint/repos.rb @@ -15,6 +15,7 @@ class Travis::Api::App # # json(:repositories) get '/' do + we want an error prefer_follower do params['ids'] = params['ids'].split(',') if params['ids'].respond_to?(:split) respond_with service(:find_repos, params) diff --git a/lib/travis/api/v2/http/repositories.rb b/lib/travis/api/v2/http/repositories.rb index 13eac08e..84871d16 100644 --- a/lib/travis/api/v2/http/repositories.rb +++ b/lib/travis/api/v2/http/repositories.rb @@ -8,7 +8,6 @@ module Travis attr_reader :repositories, :options def initialize(repositories, options = {}) - this is a test to throw an error on staging @repositories = repositories @options = options end From 574dfab7728bc9e206e5544d20e0c7a5d1b82501 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Hendricksen?= Date: Mon, 30 May 2016 18:07:54 +0200 Subject: [PATCH 8/9] fix the error - it's reporting to Sentry - Yay --- lib/travis/api/app/endpoint/repos.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/travis/api/app/endpoint/repos.rb b/lib/travis/api/app/endpoint/repos.rb index 023304df..b4f98438 100644 --- a/lib/travis/api/app/endpoint/repos.rb +++ b/lib/travis/api/app/endpoint/repos.rb @@ -15,7 +15,6 @@ class Travis::Api::App # # json(:repositories) get '/' do - we want an error prefer_follower do params['ids'] = params['ids'].split(',') if params['ids'].respond_to?(:split) respond_with service(:find_repos, params) From bec9f35e6918b4b6bcdfbc39fe315abfb3c74248 Mon Sep 17 00:00:00 2001 From: Igor Wiedler Date: Thu, 2 Jun 2016 19:22:16 +0200 Subject: [PATCH 9/9] Use .ruby-version file instead of ruby statement in Gemfile --- Gemfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/Gemfile b/Gemfile index 6d870806..f1372ff9 100644 --- a/Gemfile +++ b/Gemfile @@ -1,8 +1,6 @@ source 'https://rubygems.org' gemspec -ruby '2.1.7' if ENV.key?('DYNO') - gem 's3', github: 'travis-ci/s3' gem 'travis-core', github: 'travis-ci/travis-core'