kubeclient 4.9.1 → 4.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/actions.yml +43 -0
  3. data/.rubocop.yml +111 -14
  4. data/CHANGELOG.md +100 -0
  5. data/README.md +14 -4
  6. data/RELEASING.md +8 -8
  7. data/kubeclient.gemspec +10 -6
  8. data/lib/kubeclient/aws_eks_credentials.rb +17 -8
  9. data/lib/kubeclient/common.rb +24 -19
  10. data/lib/kubeclient/config.rb +22 -10
  11. data/lib/kubeclient/version.rb +1 -1
  12. data/lib/kubeclient/watch_stream.rb +1 -0
  13. metadata +45 -223
  14. data/.travis.yml +0 -29
  15. data/test/cassettes/kubernetes_guestbook.yml +0 -879
  16. data/test/config/allinone.kubeconfig +0 -20
  17. data/test/config/execauth.kubeconfig +0 -62
  18. data/test/config/external-ca.pem +0 -18
  19. data/test/config/external-cert.pem +0 -19
  20. data/test/config/external-key.rsa +0 -27
  21. data/test/config/external.kubeconfig +0 -20
  22. data/test/config/gcpauth.kubeconfig +0 -22
  23. data/test/config/gcpcmdauth.kubeconfig +0 -26
  24. data/test/config/nouser.kubeconfig +0 -16
  25. data/test/config/oidcauth.kubeconfig +0 -25
  26. data/test/config/timestamps.kubeconfig +0 -25
  27. data/test/config/userauth.kubeconfig +0 -28
  28. data/test/json/bindings_list.json +0 -10
  29. data/test/json/component_status.json +0 -17
  30. data/test/json/component_status_list.json +0 -52
  31. data/test/json/config.istio.io_api_resource_list.json +0 -679
  32. data/test/json/config_map_list.json +0 -9
  33. data/test/json/core_api_resource_list.json +0 -181
  34. data/test/json/core_api_resource_list_without_kind.json +0 -129
  35. data/test/json/core_oapi_resource_list_without_kind.json +0 -197
  36. data/test/json/created_endpoint.json +0 -28
  37. data/test/json/created_namespace.json +0 -20
  38. data/test/json/created_secret.json +0 -16
  39. data/test/json/created_security_context_constraint.json +0 -65
  40. data/test/json/created_service.json +0 -31
  41. data/test/json/empty_pod_list.json +0 -9
  42. data/test/json/endpoint_list.json +0 -48
  43. data/test/json/entity_list.json +0 -56
  44. data/test/json/event_list.json +0 -35
  45. data/test/json/extensions_v1beta1_api_resource_list.json +0 -217
  46. data/test/json/limit_range.json +0 -23
  47. data/test/json/limit_range_list.json +0 -31
  48. data/test/json/namespace.json +0 -13
  49. data/test/json/namespace_exception.json +0 -8
  50. data/test/json/namespace_list.json +0 -32
  51. data/test/json/node.json +0 -29
  52. data/test/json/node_list.json +0 -37
  53. data/test/json/node_notice.json +0 -160
  54. data/test/json/persistent_volume.json +0 -37
  55. data/test/json/persistent_volume_claim.json +0 -32
  56. data/test/json/persistent_volume_claim_list.json +0 -40
  57. data/test/json/persistent_volume_claims_nil_items.json +0 -8
  58. data/test/json/persistent_volume_list.json +0 -45
  59. data/test/json/pod.json +0 -92
  60. data/test/json/pod_list.json +0 -79
  61. data/test/json/pod_template_list.json +0 -9
  62. data/test/json/pods_1.json +0 -265
  63. data/test/json/pods_2.json +0 -102
  64. data/test/json/pods_410.json +0 -9
  65. data/test/json/processed_template.json +0 -27
  66. data/test/json/replication_controller.json +0 -57
  67. data/test/json/replication_controller_list.json +0 -66
  68. data/test/json/resource_quota.json +0 -46
  69. data/test/json/resource_quota_list.json +0 -54
  70. data/test/json/secret_list.json +0 -44
  71. data/test/json/security.openshift.io_api_resource_list.json +0 -69
  72. data/test/json/security_context_constraint_list.json +0 -375
  73. data/test/json/service.json +0 -33
  74. data/test/json/service_account.json +0 -25
  75. data/test/json/service_account_list.json +0 -82
  76. data/test/json/service_illegal_json_404.json +0 -1
  77. data/test/json/service_json_patch.json +0 -26
  78. data/test/json/service_list.json +0 -97
  79. data/test/json/service_merge_patch.json +0 -26
  80. data/test/json/service_patch.json +0 -25
  81. data/test/json/service_update.json +0 -22
  82. data/test/json/template.json +0 -27
  83. data/test/json/template.openshift.io_api_resource_list.json +0 -75
  84. data/test/json/template_list.json +0 -35
  85. data/test/json/versions_list.json +0 -6
  86. data/test/json/watch_stream.json +0 -3
  87. data/test/test_common.rb +0 -95
  88. data/test/test_common_url_handling.rb +0 -160
  89. data/test/test_component_status.rb +0 -29
  90. data/test/test_config.rb +0 -222
  91. data/test/test_endpoint.rb +0 -54
  92. data/test/test_exec_credentials.rb +0 -225
  93. data/test/test_gcp_command_credentials.rb +0 -27
  94. data/test/test_google_application_default_credentials.rb +0 -15
  95. data/test/test_guestbook_go.rb +0 -235
  96. data/test/test_helper.rb +0 -18
  97. data/test/test_kubeclient.rb +0 -881
  98. data/test/test_limit_range.rb +0 -25
  99. data/test/test_missing_methods.rb +0 -80
  100. data/test/test_namespace.rb +0 -59
  101. data/test/test_node.rb +0 -70
  102. data/test/test_oidc_auth_provider.rb +0 -103
  103. data/test/test_persistent_volume.rb +0 -29
  104. data/test/test_persistent_volume_claim.rb +0 -28
  105. data/test/test_pod.rb +0 -81
  106. data/test/test_pod_log.rb +0 -157
  107. data/test/test_process_template.rb +0 -80
  108. data/test/test_replication_controller.rb +0 -47
  109. data/test/test_resource_list_without_kind.rb +0 -78
  110. data/test/test_resource_quota.rb +0 -23
  111. data/test/test_secret.rb +0 -62
  112. data/test/test_security_context_constraint.rb +0 -62
  113. data/test/test_service.rb +0 -357
  114. data/test/test_service_account.rb +0 -26
  115. data/test/test_watch.rb +0 -195
  116. data/test/txt/pod_log.txt +0 -6
  117. data/test/valid_token_file +0 -1
@@ -30,7 +30,12 @@ module Kubeclient
30
30
 
31
31
  # Builds Config instance by parsing given file, with lookups relative to file's directory.
32
32
  def self.read(filename)
33
- parsed = YAML.safe_load(File.read(filename), [Date, Time])
33
+ parsed =
34
+ if RUBY_VERSION >= '2.6'
35
+ YAML.safe_load(File.read(filename), permitted_classes: [Date, Time])
36
+ else
37
+ YAML.safe_load(File.read(filename), [Date, Time])
38
+ end
34
39
  Config.new(parsed, File.dirname(filename))
35
40
  end
36
41
 
@@ -46,20 +51,22 @@ module Kubeclient
46
51
  user['exec_result'] = ExecCredentials.run(exec_opts)
47
52
  end
48
53
 
49
- ca_cert_data = fetch_cluster_ca_data(cluster)
50
54
  client_cert_data = fetch_user_cert_data(user)
51
55
  client_key_data = fetch_user_key_data(user)
52
56
  auth_options = fetch_user_auth_options(user)
53
57
 
54
58
  ssl_options = {}
55
59
 
56
- if !ca_cert_data.nil?
60
+ ssl_options[:verify_ssl] = if cluster['insecure-skip-tls-verify'] == true
61
+ OpenSSL::SSL::VERIFY_NONE
62
+ else
63
+ OpenSSL::SSL::VERIFY_PEER
64
+ end
65
+
66
+ if cluster_ca_data?(cluster)
57
67
  cert_store = OpenSSL::X509::Store.new
58
- cert_store.add_cert(OpenSSL::X509::Certificate.new(ca_cert_data))
59
- ssl_options[:verify_ssl] = OpenSSL::SSL::VERIFY_PEER
68
+ populate_cert_store_from_cluster_ca_data(cluster, cert_store)
60
69
  ssl_options[:cert_store] = cert_store
61
- else
62
- ssl_options[:verify_ssl] = OpenSSL::SSL::VERIFY_NONE
63
70
  end
64
71
 
65
72
  unless client_cert_data.nil?
@@ -126,11 +133,16 @@ module Kubeclient
126
133
  [cluster, user, namespace]
127
134
  end
128
135
 
129
- def fetch_cluster_ca_data(cluster)
136
+ def cluster_ca_data?(cluster)
137
+ cluster.key?('certificate-authority') || cluster.key?('certificate-authority-data')
138
+ end
139
+
140
+ def populate_cert_store_from_cluster_ca_data(cluster, cert_store)
130
141
  if cluster.key?('certificate-authority')
131
- File.read(ext_file_path(cluster['certificate-authority']))
142
+ cert_store.add_file(ext_file_path(cluster['certificate-authority']))
132
143
  elsif cluster.key?('certificate-authority-data')
133
- Base64.decode64(cluster['certificate-authority-data'])
144
+ ca_cert_data = Base64.decode64(cluster['certificate-authority-data'])
145
+ cert_store.add_cert(OpenSSL::X509::Certificate.new(ca_cert_data))
134
146
  end
135
147
  end
136
148
 
@@ -1,4 +1,4 @@
1
1
  # Kubernetes REST-API Client
2
2
  module Kubeclient
3
- VERSION = '4.9.1'.freeze
3
+ VERSION = '4.12.0'.freeze
4
4
  end
@@ -79,6 +79,7 @@ module Kubeclient
79
79
  end
80
80
 
81
81
  def build_client_options
82
+ @http_options[:headers][:Authorization] = "Bearer #{File.read(@http_options[:bearer_token_file])}" if @http_options[:bearer_token_file]
82
83
  client_options = {
83
84
  headers: @http_options[:headers],
84
85
  proxy: using_proxy
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kubeclient
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.9.1
4
+ version: 4.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alissa Bonas
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-31 00:00:00.000000000 Z
11
+ date: 2024-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,28 +30,28 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '12.0'
33
+ version: '13.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '12.0'
40
+ version: '13.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: minitest
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: 5.15.0
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: 5.15.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: minitest-rg
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -150,6 +150,34 @@ dependencies:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
152
  version: '1.1'
153
+ - !ruby/object:Gem::Dependency
154
+ name: net-smtp
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: tzinfo-data
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
153
181
  - !ruby/object:Gem::Dependency
154
182
  name: jsonpath
155
183
  requirement: !ruby/object:Gem::Requirement
@@ -207,7 +235,7 @@ dependencies:
207
235
  version: '3.0'
208
236
  - - "<"
209
237
  - !ruby/object:Gem::Version
210
- version: '5.0'
238
+ version: '6.0'
211
239
  type: :runtime
212
240
  prerelease: false
213
241
  version_requirements: !ruby/object:Gem::Requirement
@@ -217,7 +245,7 @@ dependencies:
217
245
  version: '3.0'
218
246
  - - "<"
219
247
  - !ruby/object:Gem::Version
220
- version: '5.0'
248
+ version: '6.0'
221
249
  description: A client for Kubernetes REST api
222
250
  email:
223
251
  - abonas@redhat.com
@@ -225,9 +253,9 @@ executables: []
225
253
  extensions: []
226
254
  extra_rdoc_files: []
227
255
  files:
256
+ - ".github/workflows/actions.yml"
228
257
  - ".gitignore"
229
258
  - ".rubocop.yml"
230
- - ".travis.yml"
231
259
  - CHANGELOG.md
232
260
  - Gemfile
233
261
  - LICENSE.txt
@@ -251,114 +279,11 @@ files:
251
279
  - lib/kubeclient/resource_not_found_error.rb
252
280
  - lib/kubeclient/version.rb
253
281
  - lib/kubeclient/watch_stream.rb
254
- - test/cassettes/kubernetes_guestbook.yml
255
- - test/config/allinone.kubeconfig
256
- - test/config/execauth.kubeconfig
257
- - test/config/external-ca.pem
258
- - test/config/external-cert.pem
259
- - test/config/external-key.rsa
260
- - test/config/external.kubeconfig
261
- - test/config/gcpauth.kubeconfig
262
- - test/config/gcpcmdauth.kubeconfig
263
- - test/config/nouser.kubeconfig
264
- - test/config/oidcauth.kubeconfig
265
- - test/config/timestamps.kubeconfig
266
- - test/config/userauth.kubeconfig
267
- - test/json/bindings_list.json
268
- - test/json/component_status.json
269
- - test/json/component_status_list.json
270
- - test/json/config.istio.io_api_resource_list.json
271
- - test/json/config_map_list.json
272
- - test/json/core_api_resource_list.json
273
- - test/json/core_api_resource_list_without_kind.json
274
- - test/json/core_oapi_resource_list_without_kind.json
275
- - test/json/created_endpoint.json
276
- - test/json/created_namespace.json
277
- - test/json/created_secret.json
278
- - test/json/created_security_context_constraint.json
279
- - test/json/created_service.json
280
- - test/json/empty_pod_list.json
281
- - test/json/endpoint_list.json
282
- - test/json/entity_list.json
283
- - test/json/event_list.json
284
- - test/json/extensions_v1beta1_api_resource_list.json
285
- - test/json/limit_range.json
286
- - test/json/limit_range_list.json
287
- - test/json/namespace.json
288
- - test/json/namespace_exception.json
289
- - test/json/namespace_list.json
290
- - test/json/node.json
291
- - test/json/node_list.json
292
- - test/json/node_notice.json
293
- - test/json/persistent_volume.json
294
- - test/json/persistent_volume_claim.json
295
- - test/json/persistent_volume_claim_list.json
296
- - test/json/persistent_volume_claims_nil_items.json
297
- - test/json/persistent_volume_list.json
298
- - test/json/pod.json
299
- - test/json/pod_list.json
300
- - test/json/pod_template_list.json
301
- - test/json/pods_1.json
302
- - test/json/pods_2.json
303
- - test/json/pods_410.json
304
- - test/json/processed_template.json
305
- - test/json/replication_controller.json
306
- - test/json/replication_controller_list.json
307
- - test/json/resource_quota.json
308
- - test/json/resource_quota_list.json
309
- - test/json/secret_list.json
310
- - test/json/security.openshift.io_api_resource_list.json
311
- - test/json/security_context_constraint_list.json
312
- - test/json/service.json
313
- - test/json/service_account.json
314
- - test/json/service_account_list.json
315
- - test/json/service_illegal_json_404.json
316
- - test/json/service_json_patch.json
317
- - test/json/service_list.json
318
- - test/json/service_merge_patch.json
319
- - test/json/service_patch.json
320
- - test/json/service_update.json
321
- - test/json/template.json
322
- - test/json/template.openshift.io_api_resource_list.json
323
- - test/json/template_list.json
324
- - test/json/versions_list.json
325
- - test/json/watch_stream.json
326
- - test/test_common.rb
327
- - test/test_common_url_handling.rb
328
- - test/test_component_status.rb
329
- - test/test_config.rb
330
- - test/test_endpoint.rb
331
- - test/test_exec_credentials.rb
332
- - test/test_gcp_command_credentials.rb
333
- - test/test_google_application_default_credentials.rb
334
- - test/test_guestbook_go.rb
335
- - test/test_helper.rb
336
- - test/test_kubeclient.rb
337
- - test/test_limit_range.rb
338
- - test/test_missing_methods.rb
339
- - test/test_namespace.rb
340
- - test/test_node.rb
341
- - test/test_oidc_auth_provider.rb
342
- - test/test_persistent_volume.rb
343
- - test/test_persistent_volume_claim.rb
344
- - test/test_pod.rb
345
- - test/test_pod_log.rb
346
- - test/test_process_template.rb
347
- - test/test_replication_controller.rb
348
- - test/test_resource_list_without_kind.rb
349
- - test/test_resource_quota.rb
350
- - test/test_secret.rb
351
- - test/test_security_context_constraint.rb
352
- - test/test_service.rb
353
- - test/test_service_account.rb
354
- - test/test_watch.rb
355
- - test/txt/pod_log.txt
356
- - test/valid_token_file
357
282
  homepage: https://github.com/abonas/kubeclient
358
283
  licenses:
359
284
  - MIT
360
285
  metadata: {}
361
- post_install_message:
286
+ post_install_message:
362
287
  rdoc_options: []
363
288
  require_paths:
364
289
  - lib
@@ -366,118 +291,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
366
291
  requirements:
367
292
  - - ">="
368
293
  - !ruby/object:Gem::Version
369
- version: 2.2.0
294
+ version: 2.7.0
370
295
  required_rubygems_version: !ruby/object:Gem::Requirement
371
296
  requirements:
372
297
  - - ">="
373
298
  - !ruby/object:Gem::Version
374
299
  version: '0'
375
300
  requirements: []
376
- rubygems_version: 3.1.2
377
- signing_key:
301
+ rubygems_version: 3.4.20
302
+ signing_key:
378
303
  specification_version: 4
379
304
  summary: A client for Kubernetes REST api
380
- test_files:
381
- - test/cassettes/kubernetes_guestbook.yml
382
- - test/config/allinone.kubeconfig
383
- - test/config/execauth.kubeconfig
384
- - test/config/external-ca.pem
385
- - test/config/external-cert.pem
386
- - test/config/external-key.rsa
387
- - test/config/external.kubeconfig
388
- - test/config/gcpauth.kubeconfig
389
- - test/config/gcpcmdauth.kubeconfig
390
- - test/config/nouser.kubeconfig
391
- - test/config/oidcauth.kubeconfig
392
- - test/config/timestamps.kubeconfig
393
- - test/config/userauth.kubeconfig
394
- - test/json/bindings_list.json
395
- - test/json/component_status.json
396
- - test/json/component_status_list.json
397
- - test/json/config.istio.io_api_resource_list.json
398
- - test/json/config_map_list.json
399
- - test/json/core_api_resource_list.json
400
- - test/json/core_api_resource_list_without_kind.json
401
- - test/json/core_oapi_resource_list_without_kind.json
402
- - test/json/created_endpoint.json
403
- - test/json/created_namespace.json
404
- - test/json/created_secret.json
405
- - test/json/created_security_context_constraint.json
406
- - test/json/created_service.json
407
- - test/json/empty_pod_list.json
408
- - test/json/endpoint_list.json
409
- - test/json/entity_list.json
410
- - test/json/event_list.json
411
- - test/json/extensions_v1beta1_api_resource_list.json
412
- - test/json/limit_range.json
413
- - test/json/limit_range_list.json
414
- - test/json/namespace.json
415
- - test/json/namespace_exception.json
416
- - test/json/namespace_list.json
417
- - test/json/node.json
418
- - test/json/node_list.json
419
- - test/json/node_notice.json
420
- - test/json/persistent_volume.json
421
- - test/json/persistent_volume_claim.json
422
- - test/json/persistent_volume_claim_list.json
423
- - test/json/persistent_volume_claims_nil_items.json
424
- - test/json/persistent_volume_list.json
425
- - test/json/pod.json
426
- - test/json/pod_list.json
427
- - test/json/pod_template_list.json
428
- - test/json/pods_1.json
429
- - test/json/pods_2.json
430
- - test/json/pods_410.json
431
- - test/json/processed_template.json
432
- - test/json/replication_controller.json
433
- - test/json/replication_controller_list.json
434
- - test/json/resource_quota.json
435
- - test/json/resource_quota_list.json
436
- - test/json/secret_list.json
437
- - test/json/security.openshift.io_api_resource_list.json
438
- - test/json/security_context_constraint_list.json
439
- - test/json/service.json
440
- - test/json/service_account.json
441
- - test/json/service_account_list.json
442
- - test/json/service_illegal_json_404.json
443
- - test/json/service_json_patch.json
444
- - test/json/service_list.json
445
- - test/json/service_merge_patch.json
446
- - test/json/service_patch.json
447
- - test/json/service_update.json
448
- - test/json/template.json
449
- - test/json/template.openshift.io_api_resource_list.json
450
- - test/json/template_list.json
451
- - test/json/versions_list.json
452
- - test/json/watch_stream.json
453
- - test/test_common.rb
454
- - test/test_common_url_handling.rb
455
- - test/test_component_status.rb
456
- - test/test_config.rb
457
- - test/test_endpoint.rb
458
- - test/test_exec_credentials.rb
459
- - test/test_gcp_command_credentials.rb
460
- - test/test_google_application_default_credentials.rb
461
- - test/test_guestbook_go.rb
462
- - test/test_helper.rb
463
- - test/test_kubeclient.rb
464
- - test/test_limit_range.rb
465
- - test/test_missing_methods.rb
466
- - test/test_namespace.rb
467
- - test/test_node.rb
468
- - test/test_oidc_auth_provider.rb
469
- - test/test_persistent_volume.rb
470
- - test/test_persistent_volume_claim.rb
471
- - test/test_pod.rb
472
- - test/test_pod_log.rb
473
- - test/test_process_template.rb
474
- - test/test_replication_controller.rb
475
- - test/test_resource_list_without_kind.rb
476
- - test/test_resource_quota.rb
477
- - test/test_secret.rb
478
- - test/test_security_context_constraint.rb
479
- - test/test_service.rb
480
- - test/test_service_account.rb
481
- - test/test_watch.rb
482
- - test/txt/pod_log.txt
483
- - test/valid_token_file
305
+ test_files: []
data/.travis.yml DELETED
@@ -1,29 +0,0 @@
1
- language: ruby
2
- sudo: false
3
- cache: bundler
4
- script: bundle exec rake $TASK
5
-
6
- os:
7
- - linux
8
- - osx
9
- rvm:
10
- - "2.2.0"
11
- - "2.3.0"
12
- - "2.4.0"
13
- - "2.5.0"
14
- - "2.6.0"
15
- - "2.7.0"
16
- env:
17
- - TASK=test
18
- matrix:
19
- exclude:
20
- - os: osx
21
- rvm: "2.2.0"
22
- - os: osx
23
- rvm: "2.3.0"
24
- # No point running Rubocop on different rubies, results will be same.
25
- # The rubies it expects the code to target are controlled in .rubocop.yml.
26
- include:
27
- - os: linux
28
- rvm: "2.5.0"
29
- env: TASK=rubocop