Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
1 change: 1 addition & 0 deletions ruby/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ test/fixtures/log/test_data.json
/.byebug_history
/.bundle/
/.yardoc
/Gemfile.lock
/_yardoc/
/coverage/
/doc/
Expand Down
1 change: 0 additions & 1 deletion ruby/.ruby-version

This file was deleted.

2 changes: 1 addition & 1 deletion ruby/Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ source 'https://rubygems.org'
# Specify your gem's dependencies in ci-queue.gemspec
gemspec

gem 'activesupport'
gem 'activesupport', '~> 5.2.0'
113 changes: 0 additions & 113 deletions ruby/Gemfile.lock

This file was deleted.

4 changes: 0 additions & 4 deletions ruby/ci-queue.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@ Gem::Specification.new do |spec|
spec.homepage = 'https://github.com/Shopify/ci-queue'
spec.license = 'MIT'

spec.required_ruby_version = '>= 2.7'

spec.files = lua_scripts + `git ls-files -z`.split("\x0").reject do |f|
f.match(%r{^(test|spec|features)/})
end
Expand All @@ -31,8 +29,6 @@ Gem::Specification.new do |spec|

spec.metadata['allowed_push_host'] = 'https://rubygems.org'

spec.add_runtime_dependency 'logger'

spec.add_development_dependency 'bundler'
spec.add_development_dependency 'rake'
spec.add_development_dependency 'minitest', ENV.fetch('MINITEST_VERSION', '~> 5.11')
Expand Down
6 changes: 3 additions & 3 deletions ruby/dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
name: ci-queue

up:
- ruby
- ruby: 2.6.5
- bundler
- redis
- isogun

commands:
test: REDIS_URL=${REDIS_URL} bundle exec rake test TEST_FILES="$*"
test: REDIS_URL=${REDIS_URL:-redis://ci-queue.railgun/0} bundle exec rake test TEST_FILES="$*"
10 changes: 10 additions & 0 deletions ruby/isogun.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# This file is for Shopify employees development environment.
# If you are an external contributor you don't have to bother with it.
name: ci-queue

vm:
ip_address: 192.168.64.245
memory: 1G
cores: 2
services:
- redis
14 changes: 1 addition & 13 deletions ruby/lib/ci/queue.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

require 'uri'
require 'cgi'
require 'json'

require 'ci/queue/version'
require 'ci/queue/output_helpers'
Expand All @@ -21,21 +20,10 @@ module Queue

attr_accessor :shuffler, :requeueable

Error = Class.new(StandardError)

module Warnings
RESERVED_LOST_TEST = :RESERVED_LOST_TEST
end

GET_NOW = ::Time.method(:now)
private_constant :GET_NOW
def time_now
# Mocks like freeze_time should be cleaned when ci-queue runs, however,
# we experienced cases when tests were enqueued with wrong timestamps, so we
# safeguard Time.now here.
GET_NOW.call
end

def requeueable?(test_result)
requeueable.nil? || requeueable.call(test_result)
end
Expand All @@ -55,7 +43,7 @@ def from_uri(url, config)
Static
when 'file', nil
File
when 'redis', 'rediss'
when 'redis'
require 'ci/queue/redis'
Redis
else
Expand Down
4 changes: 0 additions & 4 deletions ruby/lib/ci/queue/bisect.rb
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,6 @@ def failing_test
Static.new([config.failing_test], config).populate(@all_tests)
end

def failing_test_present?
@all_tests.find { |t| t.id == config.failing_test }
end

def candidates
Static.new(first_half + [config.failing_test], config).populate(@all_tests)
end
Expand Down
10 changes: 1 addition & 9 deletions ruby/lib/ci/queue/build_record.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ def record_error(id, payload, stats: nil)
record_stats(stats)
end

def record_success(id, stats: nil, skip_flaky_record: false)
def record_success(id, stats: nil)
error_reports.delete(id)
record_stats(stats)
end
Expand All @@ -36,14 +36,6 @@ def reset_stats(stat_names)
stat_names.each { |s| stats.delete(s) }
end

def report_worker_error(_); end

def reset_worker_error; end

def worker_errors
{}
end

private

attr_reader :stats
Expand Down
2 changes: 1 addition & 1 deletion ruby/lib/ci/queue/circuit_breaker.rb
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ def message
private

def current_timestamp
CI::Queue.time_now.to_i
Time.now.to_i
end
end

Expand Down
9 changes: 3 additions & 6 deletions ruby/lib/ci/queue/configuration.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ class Configuration
attr_accessor :timeout, :worker_id, :max_requeues, :grind_count, :failure_file, :export_flaky_tests_file
attr_accessor :requeue_tolerance, :namespace, :failing_test, :statsd_endpoint
attr_accessor :max_test_duration, :max_test_duration_percentile, :track_test_duration
attr_accessor :max_test_failed, :redis_ttl, :warnings_file, :debug_log, :max_missed_heartbeat_seconds
attr_accessor :max_test_failed, :redis_ttl
attr_reader :circuit_breakers
attr_writer :seed, :build_id
attr_writer :queue_init_timeout, :report_timeout, :inactive_workers_timeout
Expand All @@ -19,7 +19,6 @@ def from_env(env)
flaky_tests: load_flaky_tests(env['CI_QUEUE_FLAKY_TESTS']),
statsd_endpoint: env['CI_QUEUE_STATSD_ADDR'],
redis_ttl: env['CI_QUEUE_REDIS_TTL']&.to_i || 8 * 60 * 60,
debug_log: env['CI_QUEUE_DEBUG_LOG'],
)
end

Expand All @@ -37,7 +36,8 @@ def initialize(
grind_count: nil, max_duration: nil, failure_file: nil, max_test_duration: nil,
max_test_duration_percentile: 0.5, track_test_duration: false, max_test_failed: nil,
queue_init_timeout: nil, redis_ttl: 8 * 60 * 60, report_timeout: nil, inactive_workers_timeout: nil,
export_flaky_tests_file: nil, warnings_file: nil, debug_log: nil, max_missed_heartbeat_seconds: nil)
export_flaky_tests_file: nil
)
@build_id = build_id
@circuit_breakers = [CircuitBreaker::Disabled]
@failure_file = failure_file
Expand All @@ -61,9 +61,6 @@ def initialize(
@report_timeout = report_timeout
@inactive_workers_timeout = inactive_workers_timeout
@export_flaky_tests_file = export_flaky_tests_file
@warnings_file = warnings_file
@debug_log = debug_log
@max_missed_heartbeat_seconds = max_missed_heartbeat_seconds
end

def queue_init_timeout
Expand Down
4 changes: 2 additions & 2 deletions ruby/lib/ci/queue/redis.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@
module CI
module Queue
module Redis
LostMaster = Class.new(CI::Queue::Error)
ReservationError = Class.new(CI::Queue::Error)
Error = Class.new(StandardError)
LostMaster = Class.new(Error)

class << self

Expand Down
Loading
Loading