Class: KnapsackPro::Config::Env
- Inherits:
-
Object
- Object
- KnapsackPro::Config::Env
- Defined in:
- lib/knapsack_pro/config/env.rb
Constant Summary collapse
- LOG_LEVELS =
{ 'fatal' => ::Logger::FATAL, 'error' => ::Logger::ERROR, 'warn' => ::Logger::WARN, 'info' => ::Logger::INFO, 'debug' => ::Logger::DEBUG, }
Class Method Summary collapse
- .branch ⇒ Object
- .branch_encrypted ⇒ Object
- .branch_encrypted? ⇒ Boolean
- .ci_env_for(env_name) ⇒ Object
- .ci_node_build_id ⇒ Object
- .ci_node_index ⇒ Object
- .ci_node_retry_count ⇒ Object
- .ci_node_total ⇒ Object
- .commit_hash ⇒ Object
- .cucumber_queue_prefix ⇒ Object
- .endpoint ⇒ Object
- .fallback_mode_enabled ⇒ Object
- .fallback_mode_enabled? ⇒ Boolean
- .fixed_queue_split ⇒ Object
- .fixed_queue_split? ⇒ Boolean
- .fixed_test_suite_split ⇒ Object
- .fixed_test_suite_split? ⇒ Boolean
- .log_dir ⇒ Object
- .log_level ⇒ Object
- .max_request_retries ⇒ Object
- .mode ⇒ Object
- .modify_default_rspec_formatters ⇒ Object
- .modify_default_rspec_formatters? ⇒ Boolean
- .project_dir ⇒ Object
- .queue_id ⇒ Object
- .queue_recording_enabled ⇒ Object
- .queue_recording_enabled? ⇒ Boolean
- .recording_enabled ⇒ Object
- .recording_enabled? ⇒ Boolean
- .regular_mode? ⇒ Boolean
- .repository_adapter ⇒ Object
- .rspec_split_by_test_examples ⇒ Object
- .rspec_split_by_test_examples? ⇒ Boolean
- .rspec_test_example_detector_prefix ⇒ Object
- .salt ⇒ Object
- .set_test_runner_adapter(adapter_class) ⇒ Object
- .slow_test_file_pattern ⇒ Object
- .subset_queue_id ⇒ Object
- .test_dir ⇒ Object
- .test_file_exclude_pattern ⇒ Object
- .test_file_list ⇒ Object
- .test_file_list_source_file ⇒ Object
- .test_file_pattern ⇒ Object
- .test_files_encrypted ⇒ Object
- .test_files_encrypted? ⇒ Boolean
- .test_runner_adapter ⇒ Object
- .test_suite_token ⇒ Object
- .test_suite_token_cucumber ⇒ Object
- .test_suite_token_minitest ⇒ Object
- .test_suite_token_rspec ⇒ Object
- .test_suite_token_spinach ⇒ Object
- .test_suite_token_test_unit ⇒ Object
Class Method Details
.branch ⇒ Object
51 52 53 54 |
# File 'lib/knapsack_pro/config/env.rb', line 51 def branch ENV['KNAPSACK_PRO_BRANCH'] || ci_env_for(:branch) end |
.branch_encrypted ⇒ Object
141 142 143 |
# File 'lib/knapsack_pro/config/env.rb', line 141 def branch_encrypted ENV['KNAPSACK_PRO_BRANCH_ENCRYPTED'] end |
.branch_encrypted? ⇒ Boolean
145 146 147 |
# File 'lib/knapsack_pro/config/env.rb', line 145 def branch_encrypted? branch_encrypted == 'true' end |
.ci_env_for(env_name) ⇒ Object
237 238 239 240 241 242 243 244 245 246 247 248 249 |
# File 'lib/knapsack_pro/config/env.rb', line 237 def ci_env_for(env_name) value = nil ci_list = KnapsackPro::Config::CI.constants - [:Base, :GitlabCI] # load GitLab CI first to avoid edge case with order of loading envs for CI_NODE_INDEX ci_list = [:GitlabCI] + ci_list ci_list.each do |ci_name| ci_class = Object.const_get("KnapsackPro::Config::CI::#{ci_name}") ci = ci_class.new value = ci.send(env_name) break unless value.nil? end value end |
.ci_node_build_id ⇒ Object
25 26 27 28 29 |
# File 'lib/knapsack_pro/config/env.rb', line 25 def ci_node_build_id ENV['KNAPSACK_PRO_CI_NODE_BUILD_ID'] || ci_env_for(:node_build_id) || 'missing-build-id' end |
.ci_node_index ⇒ Object
19 20 21 22 23 |
# File 'lib/knapsack_pro/config/env.rb', line 19 def ci_node_index (ENV['KNAPSACK_PRO_CI_NODE_INDEX'] || ci_env_for(:node_index) || 0).to_i end |
.ci_node_retry_count ⇒ Object
31 32 33 34 35 36 37 |
# File 'lib/knapsack_pro/config/env.rb', line 31 def ci_node_retry_count ( ENV['KNAPSACK_PRO_CI_NODE_RETRY_COUNT'] || ci_env_for(:node_retry_count) || 0 ).to_i end |
.ci_node_total ⇒ Object
13 14 15 16 17 |
# File 'lib/knapsack_pro/config/env.rb', line 13 def ci_node_total (ENV['KNAPSACK_PRO_CI_NODE_TOTAL'] || ci_env_for(:node_total) || 1).to_i end |
.commit_hash ⇒ Object
46 47 48 49 |
# File 'lib/knapsack_pro/config/env.rb', line 46 def commit_hash ENV['KNAPSACK_PRO_COMMIT_HASH'] || ci_env_for(:commit_hash) end |
.cucumber_queue_prefix ⇒ Object
185 186 187 |
# File 'lib/knapsack_pro/config/env.rb', line 185 def cucumber_queue_prefix ENV.fetch('KNAPSACK_PRO_CUCUMBER_QUEUE_PREFIX', 'bundle exec') end |
.endpoint ⇒ Object
153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 |
# File 'lib/knapsack_pro/config/env.rb', line 153 def endpoint env_name = 'KNAPSACK_PRO_ENDPOINT' return ENV[env_name] if ENV[env_name] case mode when :development 'http://api.knapsackpro.test:3000' when :test 'https://api-staging.knapsackpro.com' when :production 'https://api.knapsackpro.com' else required_env(env_name) end end |
.fallback_mode_enabled ⇒ Object
117 118 119 |
# File 'lib/knapsack_pro/config/env.rb', line 117 def fallback_mode_enabled ENV.fetch('KNAPSACK_PRO_FALLBACK_MODE_ENABLED', true) end |
.fallback_mode_enabled? ⇒ Boolean
121 122 123 |
# File 'lib/knapsack_pro/config/env.rb', line 121 def fallback_mode_enabled? fallback_mode_enabled.to_s == 'true' end |
.fixed_queue_split ⇒ Object
177 178 179 |
# File 'lib/knapsack_pro/config/env.rb', line 177 def fixed_queue_split ENV.fetch('KNAPSACK_PRO_FIXED_QUEUE_SPLIT', false) end |
.fixed_queue_split? ⇒ Boolean
181 182 183 |
# File 'lib/knapsack_pro/config/env.rb', line 181 def fixed_queue_split? fixed_queue_split.to_s == 'true' end |
.fixed_test_suite_split ⇒ Object
169 170 171 |
# File 'lib/knapsack_pro/config/env.rb', line 169 def fixed_test_suite_split ENV.fetch('KNAPSACK_PRO_FIXED_TEST_SUITE_SPLIT', true) end |
.fixed_test_suite_split? ⇒ Boolean
173 174 175 |
# File 'lib/knapsack_pro/config/env.rb', line 173 def fixed_test_suite_split? fixed_test_suite_split.to_s == 'true' end |
.log_dir ⇒ Object
255 256 257 |
# File 'lib/knapsack_pro/config/env.rb', line 255 def log_dir ENV['KNAPSACK_PRO_LOG_DIR'] end |
.log_level ⇒ Object
251 252 253 |
# File 'lib/knapsack_pro/config/env.rb', line 251 def log_level LOG_LEVELS[ENV['KNAPSACK_PRO_LOG_LEVEL'].to_s.downcase] || ::Logger::DEBUG end |
.max_request_retries ⇒ Object
39 40 41 42 43 44 |
# File 'lib/knapsack_pro/config/env.rb', line 39 def max_request_retries number = ENV['KNAPSACK_PRO_MAX_REQUEST_RETRIES'] if number number.to_i end end |
.mode ⇒ Object
226 227 228 229 230 231 232 233 234 235 |
# File 'lib/knapsack_pro/config/env.rb', line 226 def mode mode = ENV['KNAPSACK_PRO_MODE'] return :production if mode.nil? mode = mode.to_sym if [:development, :test, :production].include?(mode) mode else raise ArgumentError.new('Wrong mode name') end end |
.modify_default_rspec_formatters ⇒ Object
133 134 135 |
# File 'lib/knapsack_pro/config/env.rb', line 133 def modify_default_rspec_formatters ENV.fetch('KNAPSACK_PRO_MODIFY_DEFAULT_RSPEC_FORMATTERS', true) end |
.modify_default_rspec_formatters? ⇒ Boolean
137 138 139 |
# File 'lib/knapsack_pro/config/env.rb', line 137 def modify_default_rspec_formatters? modify_default_rspec_formatters.to_s == 'true' end |
.project_dir ⇒ Object
56 57 58 59 |
# File 'lib/knapsack_pro/config/env.rb', line 56 def project_dir ENV['KNAPSACK_PRO_PROJECT_DIR'] || ci_env_for(:project_dir) end |
.queue_id ⇒ Object
109 110 111 |
# File 'lib/knapsack_pro/config/env.rb', line 109 def queue_id ENV['KNAPSACK_PRO_QUEUE_ID'] || raise('Missing Queue ID') end |
.queue_recording_enabled ⇒ Object
101 102 103 |
# File 'lib/knapsack_pro/config/env.rb', line 101 def queue_recording_enabled ENV['KNAPSACK_PRO_QUEUE_RECORDING_ENABLED'] end |
.queue_recording_enabled? ⇒ Boolean
105 106 107 |
# File 'lib/knapsack_pro/config/env.rb', line 105 def queue_recording_enabled? queue_recording_enabled == 'true' end |
.recording_enabled ⇒ Object
89 90 91 |
# File 'lib/knapsack_pro/config/env.rb', line 89 def recording_enabled ENV['KNAPSACK_PRO_RECORDING_ENABLED'] end |
.recording_enabled? ⇒ Boolean
93 94 95 |
# File 'lib/knapsack_pro/config/env.rb', line 93 def recording_enabled? recording_enabled == 'true' end |
.regular_mode? ⇒ Boolean
97 98 99 |
# File 'lib/knapsack_pro/config/env.rb', line 97 def regular_mode? recording_enabled? end |
.repository_adapter ⇒ Object
85 86 87 |
# File 'lib/knapsack_pro/config/env.rb', line 85 def repository_adapter ENV['KNAPSACK_PRO_REPOSITORY_ADAPTER'] end |
.rspec_split_by_test_examples ⇒ Object
189 190 191 |
# File 'lib/knapsack_pro/config/env.rb', line 189 def rspec_split_by_test_examples ENV.fetch('KNAPSACK_PRO_RSPEC_SPLIT_BY_TEST_EXAMPLES', false) end |
.rspec_split_by_test_examples? ⇒ Boolean
193 194 195 |
# File 'lib/knapsack_pro/config/env.rb', line 193 def rspec_split_by_test_examples? rspec_split_by_test_examples.to_s == 'true' end |
.rspec_test_example_detector_prefix ⇒ Object
197 198 199 |
# File 'lib/knapsack_pro/config/env.rb', line 197 def rspec_test_example_detector_prefix ENV.fetch('KNAPSACK_PRO_RSPEC_TEST_EXAMPLE_DETECTOR_PREFIX', 'bundle exec') end |
.salt ⇒ Object
149 150 151 |
# File 'lib/knapsack_pro/config/env.rb', line 149 def salt required_env('KNAPSACK_PRO_SALT') end |
.set_test_runner_adapter(adapter_class) ⇒ Object
263 264 265 |
# File 'lib/knapsack_pro/config/env.rb', line 263 def set_test_runner_adapter(adapter_class) ENV['KNAPSACK_PRO_TEST_RUNNER_ADAPTER'] = adapter_class.to_s.split('::').last end |
.slow_test_file_pattern ⇒ Object
65 66 67 |
# File 'lib/knapsack_pro/config/env.rb', line 65 def slow_test_file_pattern ENV['KNAPSACK_PRO_SLOW_TEST_FILE_PATTERN'] end |
.subset_queue_id ⇒ Object
113 114 115 |
# File 'lib/knapsack_pro/config/env.rb', line 113 def subset_queue_id ENV['KNAPSACK_PRO_SUBSET_QUEUE_ID'] || raise('Missing Subset Queue ID') end |
.test_dir ⇒ Object
81 82 83 |
# File 'lib/knapsack_pro/config/env.rb', line 81 def test_dir ENV['KNAPSACK_PRO_TEST_DIR'] end |
.test_file_exclude_pattern ⇒ Object
69 70 71 |
# File 'lib/knapsack_pro/config/env.rb', line 69 def test_file_exclude_pattern ENV['KNAPSACK_PRO_TEST_FILE_EXCLUDE_PATTERN'] end |
.test_file_list ⇒ Object
73 74 75 |
# File 'lib/knapsack_pro/config/env.rb', line 73 def test_file_list ENV['KNAPSACK_PRO_TEST_FILE_LIST'] end |
.test_file_list_source_file ⇒ Object
77 78 79 |
# File 'lib/knapsack_pro/config/env.rb', line 77 def test_file_list_source_file ENV['KNAPSACK_PRO_TEST_FILE_LIST_SOURCE_FILE'] end |
.test_file_pattern ⇒ Object
61 62 63 |
# File 'lib/knapsack_pro/config/env.rb', line 61 def test_file_pattern ENV['KNAPSACK_PRO_TEST_FILE_PATTERN'] end |
.test_files_encrypted ⇒ Object
125 126 127 |
# File 'lib/knapsack_pro/config/env.rb', line 125 def test_files_encrypted ENV['KNAPSACK_PRO_TEST_FILES_ENCRYPTED'] end |
.test_files_encrypted? ⇒ Boolean
129 130 131 |
# File 'lib/knapsack_pro/config/env.rb', line 129 def test_files_encrypted? test_files_encrypted == 'true' end |
.test_runner_adapter ⇒ Object
259 260 261 |
# File 'lib/knapsack_pro/config/env.rb', line 259 def test_runner_adapter ENV['KNAPSACK_PRO_TEST_RUNNER_ADAPTER'] end |
.test_suite_token ⇒ Object
201 202 203 204 |
# File 'lib/knapsack_pro/config/env.rb', line 201 def test_suite_token env_name = 'KNAPSACK_PRO_TEST_SUITE_TOKEN' ENV[env_name] || raise("Missing environment variable #{env_name}. You should set environment variable like #{env_name}_RSPEC (note there is suffix _RSPEC at the end). knapsack_pro gem will set #{env_name} based on #{env_name}_RSPEC value. If you use other test runner than RSpec then use proper suffix.") end |
.test_suite_token_cucumber ⇒ Object
218 219 220 |
# File 'lib/knapsack_pro/config/env.rb', line 218 def test_suite_token_cucumber ENV['KNAPSACK_PRO_TEST_SUITE_TOKEN_CUCUMBER'] end |
.test_suite_token_minitest ⇒ Object
210 211 212 |
# File 'lib/knapsack_pro/config/env.rb', line 210 def test_suite_token_minitest ENV['KNAPSACK_PRO_TEST_SUITE_TOKEN_MINITEST'] end |
.test_suite_token_rspec ⇒ Object
206 207 208 |
# File 'lib/knapsack_pro/config/env.rb', line 206 def test_suite_token_rspec ENV['KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC'] end |
.test_suite_token_spinach ⇒ Object
222 223 224 |
# File 'lib/knapsack_pro/config/env.rb', line 222 def test_suite_token_spinach ENV['KNAPSACK_PRO_TEST_SUITE_TOKEN_SPINACH'] end |
.test_suite_token_test_unit ⇒ Object
214 215 216 |
# File 'lib/knapsack_pro/config/env.rb', line 214 def test_suite_token_test_unit ENV['KNAPSACK_PRO_TEST_SUITE_TOKEN_TEST_UNIT'] end |