knapsack_pro 5.3.5 → 5.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 202eb37b7550c8556fadd902ed204ea71d5c928b2ed79f3452aa2f7dabee1a35
4
- data.tar.gz: 846ec0dd9f9953bbbfeed2b9f77535a25e5182de8b3798dcff88a48fce1ba0f9
3
+ metadata.gz: 9403659bbc5c95b9b6f0998b7ffdbffbe919522811c651644428eea2df6f3887
4
+ data.tar.gz: 139709a119b184958ef73d2268bfeca618f5456c0a410e6198baf8a4d269e05b
5
5
  SHA512:
6
- metadata.gz: 6e9e1bffd253bade681efd59cdb43a13c8ae99bb43981dbf8aaea0f7adc3e5d2cce530488e6308a7eb35821abfc9245f26236e3e3dc323b68dbd3fd457905865
7
- data.tar.gz: aedf904bdf8f765e1fdcbe651ee9d1f839201c48fdad7750668c88cb2f70bb1f61fff1fa633062f0be3bf31770656d48b0467b61b970f6d03526c430b7dc12c8
6
+ metadata.gz: 9a5152b40b810546160663243f259b82de186be4c01169cb2881315eadbacaf50a47bc6a8f851dcf0c08aa0f392aeaff3d618886f0cd8aaa1cbb06eac6d2f8b2
7
+ data.tar.gz: e20d7cb45f17fffd7420d16ed15cca4c44a0bc022407f97871d6e03290b09fd69da11e06d5dced21a77dcab059c00394909c7977eed849496e805f18a99c7580
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ### 5.4.0
4
+
5
+ * Send to the API the CI provider with a header
6
+
7
+ https://github.com/KnapsackPro/knapsack_pro-ruby/pull/216
8
+
9
+ https://github.com/KnapsackPro/knapsack_pro-ruby/compare/v5.3.5...v5.4.0
10
+
3
11
  ### 5.3.5
4
12
 
5
13
  * Handle RSpec exceptions when running RSpec in Queue Mode
data/bin/rspec ADDED
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'rspec' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
12
+
13
+ bundle_binstub = File.expand_path("bundle", __dir__)
14
+
15
+ if File.file?(bundle_binstub)
16
+ if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
17
+ load(bundle_binstub)
18
+ else
19
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
20
+ Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
21
+ end
22
+ end
23
+
24
+ require "rubygems"
25
+ require "bundler/setup"
26
+
27
+ load Gem.bin_path("rspec-core", "rspec")
@@ -59,18 +59,15 @@ module KnapsackPro
59
59
  request_hash.to_json
60
60
  end
61
61
 
62
- def test_suite_token
63
- KnapsackPro::Config::Env.test_suite_token
64
- end
65
-
66
62
  def json_headers
67
63
  {
68
64
  'Content-Type' => 'application/json',
69
65
  'Accept' => 'application/json',
70
66
  'KNAPSACK-PRO-CLIENT-NAME' => client_name,
71
67
  'KNAPSACK-PRO-CLIENT-VERSION' => KnapsackPro::VERSION,
72
- 'KNAPSACK-PRO-TEST-SUITE-TOKEN' => test_suite_token,
73
- }
68
+ 'KNAPSACK-PRO-TEST-SUITE-TOKEN' => KnapsackPro::Config::Env.test_suite_token,
69
+ 'KNAPSACK-PRO-CI-PROVIDER' => KnapsackPro::Config::Env.ci_provider,
70
+ }.compact
74
71
  end
75
72
 
76
73
  def client_name
@@ -34,6 +34,10 @@ module KnapsackPro
34
34
  def fixed_queue_split
35
35
  false
36
36
  end
37
+
38
+ def ci_provider
39
+ "AppVeyor"
40
+ end
37
41
  end
38
42
  end
39
43
  end
@@ -32,6 +32,21 @@ module KnapsackPro
32
32
  def fixed_queue_split
33
33
  true
34
34
  end
35
+
36
+ def ci_provider
37
+ return 'AWS CodeBuild' if ENV.key?('CODEBUILD_BUILD_ARN')
38
+ return 'Azure Pipelines' if ENV.key?('SYSTEM_TEAMFOUNDATIONCOLLECTIONURI')
39
+ return 'Bamboo' if ENV.key?('bamboo_planKey')
40
+ return 'Bitbucket Pipelines' if ENV.key?('BITBUCKET_COMMIT')
41
+ return 'Buddy.works' if ENV.key?('BUDDY')
42
+ return 'Drone.io' if ENV.key?('DRONE')
43
+ return 'Google Cloud Build' if ENV.key?('BUILDER_OUTPUT')
44
+ return 'Jenkins' if ENV.key?('JENKINS_URL')
45
+ return 'TeamCity' if ENV.key?('TEAMCITY_VERSION')
46
+ return 'Other' if KnapsackPro::Config::Env.ci?
47
+
48
+ nil
49
+ end
35
50
  end
36
51
  end
37
52
  end
@@ -41,6 +41,10 @@ module KnapsackPro
41
41
  def fixed_queue_split
42
42
  true
43
43
  end
44
+
45
+ def ci_provider
46
+ "Buildkite"
47
+ end
44
48
  end
45
49
  end
46
50
  end
@@ -37,6 +37,10 @@ module KnapsackPro
37
37
  def fixed_queue_split
38
38
  false
39
39
  end
40
+
41
+ def ci_provider
42
+ "CircleCI"
43
+ end
40
44
  end
41
45
  end
42
46
  end
@@ -33,6 +33,10 @@ module KnapsackPro
33
33
  def fixed_queue_split
34
34
  false
35
35
  end
36
+
37
+ def ci_provider
38
+ "Cirrus CI"
39
+ end
36
40
  end
37
41
  end
38
42
  end
@@ -34,6 +34,10 @@ module KnapsackPro
34
34
  def fixed_queue_split
35
35
  false
36
36
  end
37
+
38
+ def ci_provider
39
+ "Codefresh"
40
+ end
37
41
  end
38
42
  end
39
43
  end
@@ -33,6 +33,10 @@ module KnapsackPro
33
33
  def fixed_queue_split
34
34
  true
35
35
  end
36
+
37
+ def ci_provider
38
+ "Codeship"
39
+ end
36
40
  end
37
41
  end
38
42
  end
@@ -49,6 +49,10 @@ module KnapsackPro
49
49
  def fixed_queue_split
50
50
  true
51
51
  end
52
+
53
+ def ci_provider
54
+ "GitHub Actions"
55
+ end
52
56
  end
53
57
  end
54
58
  end
@@ -45,6 +45,10 @@ module KnapsackPro
45
45
  def fixed_queue_split
46
46
  true
47
47
  end
48
+
49
+ def ci_provider
50
+ "Gitlab CI"
51
+ end
48
52
  end
49
53
  end
50
54
  end
@@ -33,6 +33,10 @@ module KnapsackPro
33
33
  def fixed_queue_split
34
34
  false
35
35
  end
36
+
37
+ def ci_provider
38
+ "Heroku CI"
39
+ end
36
40
  end
37
41
  end
38
42
  end
@@ -34,6 +34,10 @@ module KnapsackPro
34
34
  def fixed_queue_split
35
35
  false
36
36
  end
37
+
38
+ def ci_provider
39
+ "Semaphore CI 1.0"
40
+ end
37
41
  end
38
42
  end
39
43
  end
@@ -38,6 +38,10 @@ module KnapsackPro
38
38
  def fixed_queue_split
39
39
  false
40
40
  end
41
+
42
+ def ci_provider
43
+ "Semaphore CI 2.0"
44
+ end
41
45
  end
42
46
  end
43
47
  end
@@ -25,6 +25,10 @@ module KnapsackPro
25
25
  def fixed_queue_split
26
26
  true
27
27
  end
28
+
29
+ def ci_provider
30
+ "Travis CI"
31
+ end
28
32
  end
29
33
  end
30
34
  end
@@ -269,6 +269,10 @@ module KnapsackPro
269
269
  detected || KnapsackPro::Config::CI::Base
270
270
  end
271
271
 
272
+ def ci_provider
273
+ detected_ci.new.ci_provider
274
+ end
275
+
272
276
  def log_level
273
277
  LOG_LEVELS[ENV['KNAPSACK_PRO_LOG_LEVEL'].to_s.downcase] || ::Logger::DEBUG
274
278
  end
@@ -1,3 +1,3 @@
1
1
  module KnapsackPro
2
- VERSION = '5.3.5'
2
+ VERSION = '5.4.0'
3
3
  end
@@ -289,6 +289,7 @@ describe KnapsackPro::Client::Connection do
289
289
  stub_const('ENV', {
290
290
  'KNAPSACK_PRO_ENDPOINT' => 'http://api.knapsackpro.test:3000',
291
291
  'KNAPSACK_PRO_TEST_SUITE_TOKEN' => test_suite_token,
292
+ 'GITHUB_ACTIONS' => 'true',
292
293
  })
293
294
  end
294
295
 
@@ -323,6 +324,7 @@ describe KnapsackPro::Client::Connection do
323
324
  'KNAPSACK-PRO-CLIENT-NAME' => 'knapsack_pro-ruby',
324
325
  'KNAPSACK-PRO-CLIENT-VERSION' => KnapsackPro::VERSION,
325
326
  'KNAPSACK-PRO-TEST-SUITE-TOKEN' => test_suite_token,
327
+ 'KNAPSACK-PRO-CI-PROVIDER' => 'GitHub Actions',
326
328
  }
327
329
  ).and_return(http_response)
328
330
  end
@@ -346,6 +348,7 @@ describe KnapsackPro::Client::Connection do
346
348
  'KNAPSACK-PRO-CLIENT-NAME' => 'knapsack_pro-ruby',
347
349
  'KNAPSACK-PRO-CLIENT-VERSION' => KnapsackPro::VERSION,
348
350
  'KNAPSACK-PRO-TEST-SUITE-TOKEN' => test_suite_token,
351
+ 'KNAPSACK-PRO-CI-PROVIDER' => 'GitHub Actions',
349
352
  }
350
353
  ).and_return(http_response)
351
354
  end
@@ -368,6 +371,7 @@ describe KnapsackPro::Client::Connection do
368
371
  'KNAPSACK-PRO-CLIENT-NAME' => 'knapsack_pro-ruby',
369
372
  'KNAPSACK-PRO-CLIENT-VERSION' => KnapsackPro::VERSION,
370
373
  'KNAPSACK-PRO-TEST-SUITE-TOKEN' => test_suite_token,
374
+ 'KNAPSACK-PRO-CI-PROVIDER' => 'GitHub Actions',
371
375
  }
372
376
  ).and_return(http_response)
373
377
  end
@@ -391,6 +395,7 @@ describe KnapsackPro::Client::Connection do
391
395
  'KNAPSACK-PRO-CLIENT-NAME' => 'knapsack_pro-ruby',
392
396
  'KNAPSACK-PRO-CLIENT-VERSION' => KnapsackPro::VERSION,
393
397
  'KNAPSACK-PRO-TEST-SUITE-TOKEN' => test_suite_token,
398
+ 'KNAPSACK-PRO-CI-PROVIDER' => 'GitHub Actions',
394
399
  }
395
400
  ).and_return(http_response)
396
401
  end
@@ -676,7 +676,7 @@ describe KnapsackPro::Config::Env do
676
676
  ['Semaphore CI 1.0', { 'SEMAPHORE_BUILD_NUMBER' => '123' }],
677
677
  ['Semaphore CI 2.0', { 'SEMAPHORE' => 'true', 'SEMAPHORE_WORKFLOW_ID' => '123' }],
678
678
  ['Travis CI', { 'TRAVIS' => 'true' }],
679
- ['Unsupported', {}],
679
+ ['Unsupported CI', {}],
680
680
  ].each do |ci, env|
681
681
  it "on #{ci} it is false" do
682
682
  logger = instance_double(Logger)
@@ -704,7 +704,7 @@ describe KnapsackPro::Config::Env do
704
704
  ['Semaphore CI 1.0', { 'SEMAPHORE_BUILD_NUMBER' => '123' }],
705
705
  ['Semaphore CI 2.0', { 'SEMAPHORE' => 'true', 'SEMAPHORE_WORKFLOW_ID' => '123' }],
706
706
  ['Travis CI', { 'TRAVIS' => 'true' }],
707
- ['Unsupported', {}],
707
+ ['Unsupported CI', {}],
708
708
  ].each do |ci, env|
709
709
  it "on #{ci} it is true" do
710
710
  logger = instance_double(Logger)
@@ -733,7 +733,7 @@ describe KnapsackPro::Config::Env do
733
733
  ['Semaphore CI 1.0', { 'SEMAPHORE_BUILD_NUMBER' => '123' }, false],
734
734
  ['Semaphore CI 2.0', { 'SEMAPHORE' => 'true', 'SEMAPHORE_WORKFLOW_ID' => '123' }, false],
735
735
  ['Travis CI', { 'TRAVIS' => 'true' }, true],
736
- ['Unsupported', {}, true],
736
+ ['Unsupported CI', {}, true],
737
737
  ].each do |ci, env, expected|
738
738
  it "on #{ci} it is #{expected}" do
739
739
  logger = instance_double(Logger)
@@ -1032,7 +1032,7 @@ describe KnapsackPro::Config::Env do
1032
1032
  ['Semaphore CI 1.0', { 'SEMAPHORE_BUILD_NUMBER' => '123' }, KnapsackPro::Config::CI::Semaphore],
1033
1033
  ['Semaphore CI 2.0', { 'SEMAPHORE' => 'true', 'SEMAPHORE_WORKFLOW_ID' => '123' }, KnapsackPro::Config::CI::Semaphore2],
1034
1034
  ['Travis CI', { 'TRAVIS' => 'true' }, KnapsackPro::Config::CI::Travis],
1035
- ['Unsupported', {}, KnapsackPro::Config::CI::Base],
1035
+ ['Unsupported CI', {}, KnapsackPro::Config::CI::Base],
1036
1036
  ].each do |ci, env, expected|
1037
1037
  it "detects #{ci}" do
1038
1038
  stub_const("ENV", env)
@@ -1046,7 +1046,7 @@ describe KnapsackPro::Config::Env do
1046
1046
  [
1047
1047
  ['CI from env', { 'CI' => 'True' }, true],
1048
1048
  ['Travis CI', { 'TRAVIS' => 'true' }, true],
1049
- ['Unsupported', {}, false],
1049
+ ['missing CI from ENV or development', {}, false],
1050
1050
  ].each do |ci, env, expected|
1051
1051
  it "detects #{ci}" do
1052
1052
  stub_const("ENV", env)
@@ -1055,4 +1055,38 @@ describe KnapsackPro::Config::Env do
1055
1055
  end
1056
1056
  end
1057
1057
  end
1058
+
1059
+ describe '.ci_provider' do
1060
+ [
1061
+ ['AppVeyor', { 'APPVEYOR' => '123' }],
1062
+ ['Azure Pipelines', { 'SYSTEM_TEAMFOUNDATIONCOLLECTIONURI' => '123' }],
1063
+ ['AWS CodeBuild', { 'CODEBUILD_BUILD_ARN' => '123' }],
1064
+ ['Bamboo', { 'bamboo_planKey' => '123' }],
1065
+ ['Bitbucket Pipelines', { 'BITBUCKET_COMMIT' => '123' }],
1066
+ ['Buddy.works', { 'BUDDY' => 'true' }],
1067
+ ['Buildkite', { 'BUILDKITE' => 'true' }],
1068
+ ['CircleCI', { 'CIRCLECI' => 'true' }],
1069
+ ['Cirrus CI', { 'CIRRUS_CI' => 'true' }],
1070
+ ['Codefresh', { 'CF_BUILD_ID' => '123' }],
1071
+ ['Codeship', { 'CI_NAME' => 'codeship' }],
1072
+ ['Drone.io', { 'DRONE' => 'true' }],
1073
+ ['GitHub Actions', { 'GITHUB_ACTIONS' => 'true' }],
1074
+ ['Gitlab CI', { 'GITLAB_CI' => 'true' }],
1075
+ ['Google Cloud Build', { 'BUILDER_OUTPUT' => '123' }],
1076
+ ['Heroku CI', { 'HEROKU_TEST_RUN_ID' => '123' }],
1077
+ ['Jenkins', { 'JENKINS_URL' => '123' }],
1078
+ ['Semaphore CI 1.0', { 'SEMAPHORE_BUILD_NUMBER' => '123' }],
1079
+ ['Semaphore CI 2.0', { 'SEMAPHORE' => 'true', 'SEMAPHORE_WORKFLOW_ID' => '123' }],
1080
+ ['TeamCity', { 'TEAMCITY_VERSION' => '123' }],
1081
+ ['Travis CI', { 'TRAVIS' => 'true' }],
1082
+ ['Other', { 'CI' => 'true'}],
1083
+ [nil, {}],
1084
+ ].each do |ci, env|
1085
+ it "detects #{ci} name" do
1086
+ stub_const("ENV", env)
1087
+
1088
+ expect(described_class.ci_provider).to eq(ci)
1089
+ end
1090
+ end
1091
+ end
1058
1092
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knapsack_pro
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.3.5
4
+ version: 5.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ArturT
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-01 00:00:00.000000000 Z
11
+ date: 2023-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -186,6 +186,7 @@ email:
186
186
  - arturtrzop@gmail.com
187
187
  executables:
188
188
  - knapsack_pro
189
+ - rspec
189
190
  extensions: []
190
191
  extra_rdoc_files: []
191
192
  files:
@@ -201,6 +202,7 @@ files:
201
202
  - README.md
202
203
  - Rakefile
203
204
  - bin/knapsack_pro
205
+ - bin/rspec
204
206
  - knapsack_pro.gemspec
205
207
  - lib/knapsack_pro.rb
206
208
  - lib/knapsack_pro/adapters/base_adapter.rb