module PigCI
Constants
- VERSION
Attributes
commit_sha1[W]
during_setup_eager_load_application[W]
during_setup_make_blank_application_request[W]
during_setup_precompile_assets[W]
enabled[W]
generate_html_summary[RW]
generate_terminal_summary[RW]
head_branch[W]
historical_data_run_limit[W]
ignore_cached_queries[W]
Rails caches repeated queries within the same request. You can not count any cached queries if you'd like.
locale[W]
max_change_percentage_precision[W]
output_directory[W]
pid[RW]
profiler_engine[W]
report_memory_precision[W]
report_row_sort_by[W]
PigCI.report_row_sort_by
= Proc.new { |d| d * -1 }
run_timestamp[W]
terminal_report_row_limit[W]
tmp_directory[W]
Public Instance Methods
api_key=(value)
click to toggle source
Throw deprecation notice for setting API
# File lib/pig_ci.rb, line 114 def api_key=(value) puts "DEPRECATED: PigCI.com API has been retired, you no longer need to set config.api_key in your spec/rails_helper.rb file." end
commit_sha1()
click to toggle source
# File lib/pig_ci.rb, line 104 def commit_sha1 @commit_sha1 || ENV["CI_COMMIT_ID"] || ENV["CIRCLE_SHA1"] || ENV["TRAVIS_COMMIT"] || `git rev-parse HEAD`.strip end
during_setup_eager_load_application?()
click to toggle source
# File lib/pig_ci.rb, line 63 def during_setup_eager_load_application? @during_setup_eager_load_application.nil? || @during_setup_eager_load_application end
during_setup_make_blank_application_request?()
click to toggle source
# File lib/pig_ci.rb, line 68 def during_setup_make_blank_application_request? @during_setup_make_blank_application_request.nil? || @during_setup_make_blank_application_request end
during_setup_precompile_assets?()
click to toggle source
# File lib/pig_ci.rb, line 73 def during_setup_precompile_assets? @during_setup_precompile_assets.nil? || @during_setup_precompile_assets end
enabled?()
click to toggle source
# File lib/pig_ci.rb, line 21 def enabled? @enabled.nil? ? true : @enabled end
generate_html_summary?()
click to toggle source
# File lib/pig_ci.rb, line 48 def generate_html_summary? @generate_html_summary.nil? || @generate_html_summary end
generate_terminal_summary?()
click to toggle source
# File lib/pig_ci.rb, line 43 def generate_terminal_summary? @generate_terminal_summary.nil? || @generate_terminal_summary end
head_branch()
click to toggle source
# File lib/pig_ci.rb, line 109 def head_branch @head_branch || ENV["CI_BRANCH"] || ENV["CIRCLE_BRANCH"] || ENV["TRAVIS_BRANCH"] || `git rev-parse --abbrev-ref HEAD`.strip end
historical_data_run_limit()
click to toggle source
# File lib/pig_ci.rb, line 89 def historical_data_run_limit @historical_data_run_limit ||= 10 end
ignore_cached_queries?()
click to toggle source
# File lib/pig_ci.rb, line 28 def ignore_cached_queries? @ignore_cached_queries.nil? ? false : @ignore_cached_queries end
load_i18ns!()
click to toggle source
# File lib/pig_ci.rb, line 150 def load_i18ns! I18n.available_locales << PigCI.locale I18n.load_path += Dir["#{File.expand_path("../config/locales/pig_ci", __dir__)}/*.{rb,yml}"] end
locale()
click to toggle source
# File lib/pig_ci.rb, line 119 def locale @locale || :en end
max_change_percentage_precision()
click to toggle source
# File lib/pig_ci.rb, line 53 def max_change_percentage_precision @max_change_percentage_precision || 1 end
output_directory()
click to toggle source
# File lib/pig_ci.rb, line 38 def output_directory @output_directory || Pathname.new(Dir.getwd).join("pig-ci") end
profiler_engine()
click to toggle source
# File lib/pig_ci.rb, line 99 def profiler_engine @profiler_engine ||= PigCI::ProfilerEngine::Rails.new end
report_memory_precision()
click to toggle source
# File lib/pig_ci.rb, line 58 def report_memory_precision @report_memory_precision || 2 end
report_row_sort_by(data)
click to toggle source
# File lib/pig_ci.rb, line 84 def report_row_sort_by(data) (@report_row_sort_by || proc { |d| d[:max].to_i * -1 }).call(data) end
run_exit_tasks!()
click to toggle source
# File lib/pig_ci.rb, line 155 def run_exit_tasks! return if PigCI.pid != Process.pid || !PigCI.profiler_engine.request_captured? # Save all the reports as JSON profiler_engine.profilers.each(&:save!) # Print the report summary to Terminal PigCI::Summary::Terminal.new(reports: profiler_engine.reports).print! if PigCI.generate_terminal_summary? # Save the report summary to the project root. PigCI::Summary::HTML.new(reports: profiler_engine.reports).save! if PigCI.generate_html_summary? # Make sure CI fails when metrics are over thresholds. PigCI::Summary::CI.new(reports: profiler_engine.reports).call! end
run_timestamp()
click to toggle source
# File lib/pig_ci.rb, line 94 def run_timestamp @run_timestamp ||= Time.now.to_i.to_s end
start(&block)
click to toggle source
# File lib/pig_ci.rb, line 133 def start(&block) self.pid = Process.pid PigCI::TestFrameworks::Rspec.configure! if defined?(::RSpec) block&.call(self) # Add our translations load_i18ns! # Make sure our directories exist Dir.mkdir(tmp_directory) unless File.exist?(tmp_directory) Dir.mkdir(output_directory) unless File.exist?(output_directory) # Purge any previous logs and attach some listeners profiler_engine.setup! end
terminal_report_row_limit()
click to toggle source
# File lib/pig_ci.rb, line 78 def terminal_report_row_limit @terminal_report_row_limit || -1 end
thresholds()
click to toggle source
# File lib/pig_ci.rb, line 127 def thresholds @thresholds ||= PigCI::Configuration::Thresholds.new end
thresholds=(values)
click to toggle source
# File lib/pig_ci.rb, line 123 def thresholds=(values) @thresholds = PigCI::Configuration::Thresholds.new(values) end
tmp_directory()
click to toggle source
# File lib/pig_ci.rb, line 33 def tmp_directory @tmp_directory || Pathname.new(Dir.getwd).join("tmp", "pig-ci") end