class Optimal::CI::Queue
Public Class Methods
new(provider, command_arguments_string = "")
click to toggle source
# File lib/optimal/ci/queue.rb, line 4 def initialize(provider, command_arguments_string = "") @provider = provider @command_arguments_string = command_arguments_string @http_calls_count = 0 @http_calls_time = 0.0 raise "OPTIMAL_CI_URL is not valid ENV" if ENV['OPTIMAL_CI_URL'].nil? raise "OPTIMAL_CI_TOKEN is not valid ENV" if ENV['OPTIMAL_CI_TOKEN'].nil? end
Public Instance Methods
pop()
click to toggle source
# File lib/optimal/ci/queue.rb, line 30 def pop start = Time.now response = ::RestClient.get(ENV['OPTIMAL_CI_URL'] + "/builds/#{@provider.build_number}/get_one_file", { Authorization: ENV['OPTIMAL_CI_TOKEN'] }) @http_calls_count += 1 @http_calls_time += (Time.now - start).to_f return if response.code != 200 JSON.parse(response.body) rescue RestClient::NotFound return nil end
push(files)
click to toggle source
# File lib/optimal/ci/queue.rb, line 14 def push(files) params = { build_number: @provider.build_number, total_files: files, ci: @provider.name, command_arguments_string: @command_arguments_string, total_nodes: @provider.total_nodes } response = ::RestClient.post(ENV['OPTIMAL_CI_URL'] + '/builds', params, { Authorization: ENV['OPTIMAL_CI_TOKEN'] }) response.code == 204 rescue RestClient::Conflict true end
report_duration(duration)
click to toggle source
# File lib/optimal/ci/queue.rb, line 45 def report_duration(duration) params = { duration: duration, node_index: @provider.node_index } ::RestClient.patch(ENV['OPTIMAL_CI_URL'] + "/builds/#{@provider.build_number}/report_duration", params, { Authorization: ENV['OPTIMAL_CI_TOKEN'] }) end
report_http_calls()
click to toggle source
# File lib/optimal/ci/queue.rb, line 54 def report_http_calls params = { http_calls_count: @http_calls_count, http_calls_time: @http_calls_time, node_index: @provider.node_index } ::RestClient.patch(ENV['OPTIMAL_CI_URL'] + "/builds/#{@provider.build_number}/report_http_calls", params, { Authorization: ENV['OPTIMAL_CI_TOKEN'] }) end