knapsack_pro 3.11.0 → 4.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a43c73ef1e2535db96433d5a39659b4a02cf0ecb9baac50f5effef464c0638de
4
- data.tar.gz: 49739064aea9230e17d9719bd3ee8bff27dead716bf388530eb4c9e5e079d6e1
3
+ metadata.gz: bf60d8383722268ee562e030a1012cf20544e072faf94017bf21e417782cc4a5
4
+ data.tar.gz: 91f304357d4228bdfda1c43e3387681abfe56fcbf2e75f202df565cbff0f3ec0
5
5
  SHA512:
6
- metadata.gz: d019adc9a5a78d7b795e380828a5be81eca28702aba936c1fb6759b7294bffe3e90dfcc7ab009c844863cfbe4ead8c9a1bf1159a89dee44305f9d50803d798b7
7
- data.tar.gz: c92054f2b1cdc5c842e0130d89ee8f9ebc9a44985721718b9af48e3c9e6db9f3e391fe2a8ead8ad8ebf040f0526a3ce4600014b4bbf62d1f43952c4b5e24025f
6
+ metadata.gz: 533b1f156df0b779e1ebe476ed87a9f3811929ae4a4e271bb2d880f8deda2f0e23da41ae727d5c3d38a3828f50dce5ed99c10af5857d0abdb45a674f6a128bf2
7
+ data.tar.gz: c3f1f95e7ed656c0347d09650f08b11f3a5987df3e31a54fb3b9cecc0113dd5c5e1181615803f8f938f1402b70ee3ca2649f6db5e64b135590e2e2d10c94b528
data/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Change Log
2
2
 
3
+ ### 4.1.0
4
+
5
+ * Add support for CI node retry count on GitHub Actions
6
+
7
+ https://github.com/KnapsackPro/knapsack_pro-ruby/pull/197
8
+
9
+ https://github.com/KnapsackPro/knapsack_pro-ruby/compare/v4.0.0...v4.1.0
10
+
11
+ ### 4.0.0
12
+
13
+ * Raise when `KNAPSACK_PRO_CI_NODE_BUILD_ID` is missing
14
+
15
+ https://github.com/KnapsackPro/knapsack_pro-ruby/pull/195
16
+
17
+ https://github.com/KnapsackPro/knapsack_pro-ruby/compare/v3.11.0...v4.0.0
18
+
3
19
  ### 3.11.0
4
20
 
5
21
  * Send distinguishable user seat info over to the API
@@ -16,6 +16,14 @@ module KnapsackPro
16
16
  ENV['GITHUB_RUN_ID']
17
17
  end
18
18
 
19
+ def node_retry_count
20
+ # A unique number for each attempt of a particular workflow run in a repository.
21
+ # This number begins at 1 for the workflow run's first attempt, and increments with each re-run.
22
+ run_attempt = ENV['GITHUB_RUN_ATTEMPT']
23
+ return unless run_attempt
24
+ run_attempt.to_i - 1
25
+ end
26
+
19
27
  def commit_hash
20
28
  ENV['GITHUB_SHA']
21
29
  end
@@ -23,9 +23,10 @@ module KnapsackPro
23
23
  end
24
24
 
25
25
  def ci_node_build_id
26
- ENV['KNAPSACK_PRO_CI_NODE_BUILD_ID'] ||
26
+ env_name = 'KNAPSACK_PRO_CI_NODE_BUILD_ID'
27
+ ENV[env_name] ||
27
28
  ci_env_for(:node_build_id) ||
28
- 'missing-build-id'
29
+ raise("Missing environment variable #{env_name}. Read more at #{KnapsackPro::Urls::KNAPSACK_PRO_CI_NODE_BUILD_ID}")
29
30
  end
30
31
 
31
32
  def ci_node_retry_count
@@ -18,6 +18,8 @@ module KnapsackPro
18
18
 
19
19
  INSTALLATION_GUIDE = "#{HOST}/perma/ruby/installation-guide"
20
20
 
21
+ KNAPSACK_PRO_CI_NODE_BUILD_ID= "#{HOST}/perma/ruby/knapsack-pro-ci-node-build-id"
22
+
21
23
  QUEUE_MODE__CONNECTION_ERROR_WITH_FALLBACK_ENABLED_FALSE = "#{HOST}/perma/ruby/queue-mode-connection-error-with-fallback-enabled-false"
22
24
 
23
25
  QUEUE_MODE__CONNECTION_ERROR_WITH_FALLBACK_ENABLED_TRUE_AND_POSITIVE_RETRY_COUNT = "#{HOST}/perma/ruby/queue-mode-connection-error-with-fallback-enabled-true-and-positive-retry-count"
@@ -1,3 +1,3 @@
1
1
  module KnapsackPro
2
- VERSION = '3.11.0'
2
+ VERSION = '4.1.0'
3
3
  end
@@ -29,6 +29,7 @@ describe 'Request API /v1/build_distributions/subset' do
29
29
  stub_const('ENV', {
30
30
  'KNAPSACK_PRO_ENDPOINT' => endpoint,
31
31
  'KNAPSACK_PRO_TEST_SUITE_TOKEN' => test_suite_token,
32
+ 'KNAPSACK_PRO_CI_NODE_BUILD_ID' => 'some-build-id',
32
33
  })
33
34
  end
34
35
 
@@ -22,12 +22,12 @@ describe KnapsackPro::Config::CI::AppVeyor do
22
22
  describe '#node_build_id' do
23
23
  subject { described_class.new.node_build_id }
24
24
 
25
- context 'when environment exists' do
25
+ context 'when the environment exists' do
26
26
  let(:env) { { 'APPVEYOR_BUILD_ID' => 123 } }
27
27
  it { should eql 123 }
28
28
  end
29
29
 
30
- context "when environment doesn't exist" do
30
+ context "when the environment doesn't exist" do
31
31
  it { should be nil }
32
32
  end
33
33
  end
@@ -35,12 +35,12 @@ describe KnapsackPro::Config::CI::AppVeyor do
35
35
  describe '#commit_hash' do
36
36
  subject { described_class.new.commit_hash }
37
37
 
38
- context 'when environment exists' do
38
+ context 'when the environment exists' do
39
39
  let(:env) { { 'APPVEYOR_REPO_COMMIT' => '2e13512fc230d6f9ebf4923352718e4d' } }
40
40
  it { should eql '2e13512fc230d6f9ebf4923352718e4d' }
41
41
  end
42
42
 
43
- context "when environment doesn't exist" do
43
+ context "when the environment doesn't exist" do
44
44
  it { should be nil }
45
45
  end
46
46
  end
@@ -48,12 +48,12 @@ describe KnapsackPro::Config::CI::AppVeyor do
48
48
  describe '#branch' do
49
49
  subject { described_class.new.branch }
50
50
 
51
- context 'when environment exists' do
51
+ context 'when the environment exists' do
52
52
  let(:env) { { 'APPVEYOR_REPO_BRANCH' => 'master' } }
53
53
  it { should eql 'master' }
54
54
  end
55
55
 
56
- context "when environment doesn't exist" do
56
+ context "when the environment doesn't exist" do
57
57
  it { should be nil }
58
58
  end
59
59
  end
@@ -61,12 +61,12 @@ describe KnapsackPro::Config::CI::AppVeyor do
61
61
  describe '#project_dir' do
62
62
  subject { described_class.new.project_dir }
63
63
 
64
- context 'when environment exists' do
64
+ context 'when the environment exists' do
65
65
  let(:env) { { 'APPVEYOR_BUILD_FOLDER' => '/path/to/clone/repo' } }
66
66
  it { should eql '/path/to/clone/repo' }
67
67
  end
68
68
 
69
- context "when environment doesn't exist" do
69
+ context "when the environment doesn't exist" do
70
70
  it { should be nil }
71
71
  end
72
72
  end
@@ -10,12 +10,12 @@ describe KnapsackPro::Config::CI::Buildkite do
10
10
  describe '#node_total' do
11
11
  subject { described_class.new.node_total }
12
12
 
13
- context 'when environment exists' do
13
+ context 'when the environment exists' do
14
14
  let(:env) { { 'BUILDKITE_PARALLEL_JOB_COUNT' => 4 } }
15
15
  it { should eql 4 }
16
16
  end
17
17
 
18
- context "when environment doesn't exist" do
18
+ context "when the environment doesn't exist" do
19
19
  it { should be nil }
20
20
  end
21
21
  end
@@ -23,12 +23,12 @@ describe KnapsackPro::Config::CI::Buildkite do
23
23
  describe '#node_index' do
24
24
  subject { described_class.new.node_index }
25
25
 
26
- context 'when environment exists' do
26
+ context 'when the environment exists' do
27
27
  let(:env) { { 'BUILDKITE_PARALLEL_JOB' => 3 } }
28
28
  it { should eql 3 }
29
29
  end
30
30
 
31
- context "when environment doesn't exist" do
31
+ context "when the environment doesn't exist" do
32
32
  it { should be nil }
33
33
  end
34
34
  end
@@ -36,12 +36,12 @@ describe KnapsackPro::Config::CI::Buildkite do
36
36
  describe '#node_build_id' do
37
37
  subject { described_class.new.node_build_id }
38
38
 
39
- context 'when environment exists' do
39
+ context 'when the environment exists' do
40
40
  let(:env) { { 'BUILDKITE_BUILD_NUMBER' => 1514 } }
41
41
  it { should eql 1514 }
42
42
  end
43
43
 
44
- context "when environment doesn't exist" do
44
+ context "when the environment doesn't exist" do
45
45
  it { should be nil }
46
46
  end
47
47
  end
@@ -49,12 +49,12 @@ describe KnapsackPro::Config::CI::Buildkite do
49
49
  describe '#node_retry_count' do
50
50
  subject { described_class.new.node_retry_count }
51
51
 
52
- context 'when environment exists' do
52
+ context 'when the environment exists' do
53
53
  let(:env) { { 'BUILDKITE_RETRY_COUNT' => '1' } }
54
54
  it { should eql '1' }
55
55
  end
56
56
 
57
- context "when environment doesn't exist" do
57
+ context "when the environment doesn't exist" do
58
58
  it { should be nil }
59
59
  end
60
60
  end
@@ -62,12 +62,12 @@ describe KnapsackPro::Config::CI::Buildkite do
62
62
  describe '#commit_hash' do
63
63
  subject { described_class.new.commit_hash }
64
64
 
65
- context 'when environment exists' do
65
+ context 'when the environment exists' do
66
66
  let(:env) { { 'BUILDKITE_COMMIT' => '3fa64859337f6e56409d49f865d13fd7' } }
67
67
  it { should eql '3fa64859337f6e56409d49f865d13fd7' }
68
68
  end
69
69
 
70
- context "when environment doesn't exist" do
70
+ context "when the environment doesn't exist" do
71
71
  it { should be nil }
72
72
  end
73
73
  end
@@ -75,12 +75,12 @@ describe KnapsackPro::Config::CI::Buildkite do
75
75
  describe '#branch' do
76
76
  subject { described_class.new.branch }
77
77
 
78
- context 'when environment exists' do
78
+ context 'when the environment exists' do
79
79
  let(:env) { { 'BUILDKITE_BRANCH' => 'main' } }
80
80
  it { should eql 'main' }
81
81
  end
82
82
 
83
- context "when environment doesn't exist" do
83
+ context "when the environment doesn't exist" do
84
84
  it { should be nil }
85
85
  end
86
86
  end
@@ -88,12 +88,12 @@ describe KnapsackPro::Config::CI::Buildkite do
88
88
  describe '#project_dir' do
89
89
  subject { described_class.new.project_dir }
90
90
 
91
- context 'when environment exists' do
91
+ context 'when the environment exists' do
92
92
  let(:env) { { 'BUILDKITE_BUILD_CHECKOUT_PATH' => '/home/user/knapsack_pro-ruby' } }
93
93
  it { should eql '/home/user/knapsack_pro-ruby' }
94
94
  end
95
95
 
96
- context "when environment doesn't exist" do
96
+ context "when the environment doesn't exist" do
97
97
  it { should be nil }
98
98
  end
99
99
  end
@@ -10,12 +10,12 @@ describe KnapsackPro::Config::CI::Circle do
10
10
  describe '#node_total' do
11
11
  subject { described_class.new.node_total }
12
12
 
13
- context 'when environment exists' do
13
+ context 'when the environment exists' do
14
14
  let(:env) { { 'CIRCLE_NODE_TOTAL' => 4 } }
15
15
  it { should eql 4 }
16
16
  end
17
17
 
18
- context "when environment doesn't exist" do
18
+ context "when the environment doesn't exist" do
19
19
  it { should be nil }
20
20
  end
21
21
  end
@@ -23,12 +23,12 @@ describe KnapsackPro::Config::CI::Circle do
23
23
  describe '#node_index' do
24
24
  subject { described_class.new.node_index }
25
25
 
26
- context 'when environment exists' do
26
+ context 'when the environment exists' do
27
27
  let(:env) { { 'CIRCLE_NODE_INDEX' => 3 } }
28
28
  it { should eql 3 }
29
29
  end
30
30
 
31
- context "when environment doesn't exist" do
31
+ context "when the environment doesn't exist" do
32
32
  it { should be nil }
33
33
  end
34
34
  end
@@ -36,12 +36,12 @@ describe KnapsackPro::Config::CI::Circle do
36
36
  describe '#node_build_id' do
37
37
  subject { described_class.new.node_build_id }
38
38
 
39
- context 'when environment exists' do
39
+ context 'when the environment exists' do
40
40
  let(:env) { { 'CIRCLE_BUILD_NUM' => 123 } }
41
41
  it { should eql 123 }
42
42
  end
43
43
 
44
- context "when environment doesn't exist" do
44
+ context "when the environment doesn't exist" do
45
45
  it { should be nil }
46
46
  end
47
47
  end
@@ -49,12 +49,12 @@ describe KnapsackPro::Config::CI::Circle do
49
49
  describe '#commit_hash' do
50
50
  subject { described_class.new.commit_hash }
51
51
 
52
- context 'when environment exists' do
52
+ context 'when the environment exists' do
53
53
  let(:env) { { 'CIRCLE_SHA1' => '3fa64859337f6e56409d49f865d13fd7' } }
54
54
  it { should eql '3fa64859337f6e56409d49f865d13fd7' }
55
55
  end
56
56
 
57
- context "when environment doesn't exist" do
57
+ context "when the environment doesn't exist" do
58
58
  it { should be nil }
59
59
  end
60
60
  end
@@ -62,12 +62,12 @@ describe KnapsackPro::Config::CI::Circle do
62
62
  describe '#branch' do
63
63
  subject { described_class.new.branch }
64
64
 
65
- context 'when environment exists' do
65
+ context 'when the environment exists' do
66
66
  let(:env) { { 'CIRCLE_BRANCH' => 'main' } }
67
67
  it { should eql 'main' }
68
68
  end
69
69
 
70
- context "when environment doesn't exist" do
70
+ context "when the environment doesn't exist" do
71
71
  it { should be nil }
72
72
  end
73
73
  end
@@ -80,7 +80,7 @@ describe KnapsackPro::Config::CI::Circle do
80
80
  it { should eql '~/knapsack_pro-ruby' }
81
81
  end
82
82
 
83
- context "when environment doesn't exist" do
83
+ context "when the environment doesn't exist" do
84
84
  it { should be nil }
85
85
  end
86
86
  end
@@ -10,12 +10,12 @@ describe KnapsackPro::Config::CI::CirrusCI do
10
10
  describe '#node_total' do
11
11
  subject { described_class.new.node_total }
12
12
 
13
- context 'when environment exists' do
13
+ context 'when the environment exists' do
14
14
  let(:env) { { 'CI_NODE_TOTAL' => 4 } }
15
15
  it { should eql 4 }
16
16
  end
17
17
 
18
- context "when environment doesn't exist" do
18
+ context "when the environment doesn't exist" do
19
19
  it { should be nil }
20
20
  end
21
21
  end
@@ -23,12 +23,12 @@ describe KnapsackPro::Config::CI::CirrusCI do
23
23
  describe '#node_index' do
24
24
  subject { described_class.new.node_index }
25
25
 
26
- context 'when environment exists' do
26
+ context 'when the environment exists' do
27
27
  let(:env) { { 'CI_NODE_INDEX' => 3 } }
28
28
  it { should eql 3 }
29
29
  end
30
30
 
31
- context "when environment doesn't exist" do
31
+ context "when the environment doesn't exist" do
32
32
  it { should be nil }
33
33
  end
34
34
  end
@@ -36,12 +36,12 @@ describe KnapsackPro::Config::CI::CirrusCI do
36
36
  describe '#node_build_id' do
37
37
  subject { described_class.new.node_build_id }
38
38
 
39
- context 'when environment exists' do
39
+ context 'when the environment exists' do
40
40
  let(:env) { { 'CIRRUS_BUILD_ID' => 123 } }
41
41
  it { should eql 123 }
42
42
  end
43
43
 
44
- context "when environment doesn't exist" do
44
+ context "when the environment doesn't exist" do
45
45
  it { should be nil }
46
46
  end
47
47
  end
@@ -49,12 +49,12 @@ describe KnapsackPro::Config::CI::CirrusCI do
49
49
  describe '#commit_hash' do
50
50
  subject { described_class.new.commit_hash }
51
51
 
52
- context 'when environment exists' do
52
+ context 'when the environment exists' do
53
53
  let(:env) { { 'CIRRUS_CHANGE_IN_REPO' => '2e13512fc230d6f9ebf4923352718e4d' } }
54
54
  it { should eql '2e13512fc230d6f9ebf4923352718e4d' }
55
55
  end
56
56
 
57
- context "when environment doesn't exist" do
57
+ context "when the environment doesn't exist" do
58
58
  it { should be nil }
59
59
  end
60
60
  end
@@ -62,12 +62,12 @@ describe KnapsackPro::Config::CI::CirrusCI do
62
62
  describe '#branch' do
63
63
  subject { described_class.new.branch }
64
64
 
65
- context 'when environment exists' do
65
+ context 'when the environment exists' do
66
66
  let(:env) { { 'CIRRUS_BRANCH' => 'master' } }
67
67
  it { should eql 'master' }
68
68
  end
69
69
 
70
- context "when environment doesn't exist" do
70
+ context "when the environment doesn't exist" do
71
71
  it { should be nil }
72
72
  end
73
73
  end
@@ -75,12 +75,12 @@ describe KnapsackPro::Config::CI::CirrusCI do
75
75
  describe '#project_dir' do
76
76
  subject { described_class.new.project_dir }
77
77
 
78
- context 'when environment exists' do
78
+ context 'when the environment exists' do
79
79
  let(:env) { { 'CIRRUS_WORKING_DIR' => '/tmp/cirrus-ci-build' } }
80
80
  it { should eql '/tmp/cirrus-ci-build' }
81
81
  end
82
82
 
83
- context "when environment doesn't exist" do
83
+ context "when the environment doesn't exist" do
84
84
  it { should be nil }
85
85
  end
86
86
  end
@@ -22,12 +22,12 @@ describe KnapsackPro::Config::CI::Codefresh do
22
22
  describe '#node_build_id' do
23
23
  subject { described_class.new.node_build_id }
24
24
 
25
- context 'when environment exists' do
25
+ context 'when the environment exists' do
26
26
  let(:env) { { 'CF_BUILD_ID' => '1005' } }
27
27
  it { should eql '1005' }
28
28
  end
29
29
 
30
- context "when environment doesn't exist" do
30
+ context "when the environment doesn't exist" do
31
31
  it { should be nil }
32
32
  end
33
33
  end
@@ -35,12 +35,12 @@ describe KnapsackPro::Config::CI::Codefresh do
35
35
  describe '#commit_hash' do
36
36
  subject { described_class.new.commit_hash }
37
37
 
38
- context 'when environment exists' do
38
+ context 'when the environment exists' do
39
39
  let(:env) { { 'CF_REVISION' => 'b624067a61d2134df1db74ebdabb1d8d' } }
40
40
  it { should eql 'b624067a61d2134df1db74ebdabb1d8d' }
41
41
  end
42
42
 
43
- context "when environment doesn't exist" do
43
+ context "when the environment doesn't exist" do
44
44
  it { should be nil }
45
45
  end
46
46
  end
@@ -48,12 +48,12 @@ describe KnapsackPro::Config::CI::Codefresh do
48
48
  describe '#branch' do
49
49
  subject { described_class.new.branch }
50
50
 
51
- context 'when environment exists' do
51
+ context 'when the environment exists' do
52
52
  let(:env) { { 'CF_BRANCH' => 'codefresh-branch' } }
53
53
  it { should eql 'codefresh-branch' }
54
54
  end
55
55
 
56
- context "when environment doesn't exist" do
56
+ context "when the environment doesn't exist" do
57
57
  it { should be nil }
58
58
  end
59
59
  end
@@ -22,12 +22,12 @@ describe KnapsackPro::Config::CI::Codeship do
22
22
  describe '#node_build_id' do
23
23
  subject { described_class.new.node_build_id }
24
24
 
25
- context 'when environment exists' do
25
+ context 'when the environment exists' do
26
26
  let(:env) { { 'CI_BUILD_NUMBER' => 2013 } }
27
27
  it { should eql 2013 }
28
28
  end
29
29
 
30
- context "when environment doesn't exist" do
30
+ context "when the environment doesn't exist" do
31
31
  it { should be nil }
32
32
  end
33
33
  end
@@ -35,12 +35,12 @@ describe KnapsackPro::Config::CI::Codeship do
35
35
  describe '#commit_hash' do
36
36
  subject { described_class.new.commit_hash }
37
37
 
38
- context 'when environment exists' do
38
+ context 'when the environment exists' do
39
39
  let(:env) { { 'CI_COMMIT_ID' => 'a22aec3ee5d334fd658da35646b42bc5' } }
40
40
  it { should eql 'a22aec3ee5d334fd658da35646b42bc5' }
41
41
  end
42
42
 
43
- context "when environment doesn't exist" do
43
+ context "when the environment doesn't exist" do
44
44
  it { should be nil }
45
45
  end
46
46
  end
@@ -48,12 +48,12 @@ describe KnapsackPro::Config::CI::Codeship do
48
48
  describe '#branch' do
49
49
  subject { described_class.new.branch }
50
50
 
51
- context 'when environment exists' do
51
+ context 'when the environment exists' do
52
52
  let(:env) { { 'CI_BRANCH' => 'master' } }
53
53
  it { should eql 'master' }
54
54
  end
55
55
 
56
- context "when environment doesn't exist" do
56
+ context "when the environment doesn't exist" do
57
57
  it { should be nil }
58
58
  end
59
59
  end
@@ -22,12 +22,25 @@ describe KnapsackPro::Config::CI::GithubActions do
22
22
  describe '#node_build_id' do
23
23
  subject { described_class.new.node_build_id }
24
24
 
25
- context 'when environment exists' do
25
+ context 'when the environment exists' do
26
26
  let(:env) { { 'GITHUB_RUN_ID' => 2706 } }
27
27
  it { should eql 2706 }
28
28
  end
29
29
 
30
- context "when environment doesn't exist" do
30
+ context "when the environment doesn't exist" do
31
+ it { should be nil }
32
+ end
33
+ end
34
+
35
+ describe '#node_retry_count' do
36
+ subject { described_class.new.node_retry_count }
37
+
38
+ context 'when the environment exists' do
39
+ let(:env) { { 'GITHUB_RUN_ATTEMPT' => 2 } }
40
+ it { should eql 1 }
41
+ end
42
+
43
+ context "when the environment doesn't exist" do
31
44
  it { should be nil }
32
45
  end
33
46
  end
@@ -35,12 +48,12 @@ describe KnapsackPro::Config::CI::GithubActions do
35
48
  describe '#commit_hash' do
36
49
  subject { described_class.new.commit_hash }
37
50
 
38
- context 'when environment exists' do
51
+ context 'when the environment exists' do
39
52
  let(:env) { { 'GITHUB_SHA' => '2e13512fc230d6f9ebf4923352718e4d' } }
40
53
  it { should eql '2e13512fc230d6f9ebf4923352718e4d' }
41
54
  end
42
55
 
43
- context "when environment doesn't exist" do
56
+ context "when the environment doesn't exist" do
44
57
  it { should be nil }
45
58
  end
46
59
  end
@@ -48,7 +61,7 @@ describe KnapsackPro::Config::CI::GithubActions do
48
61
  describe '#branch' do
49
62
  subject { described_class.new.branch }
50
63
 
51
- context 'when environment exists' do
64
+ context 'when the environment exists' do
52
65
  context 'when GITHUB_REF has value' do
53
66
  let(:env) do
54
67
  {
@@ -71,7 +84,7 @@ describe KnapsackPro::Config::CI::GithubActions do
71
84
  end
72
85
  end
73
86
 
74
- context "when environment doesn't exist" do
87
+ context "when the environment doesn't exist" do
75
88
  it { should be nil }
76
89
  end
77
90
  end
@@ -79,12 +92,12 @@ describe KnapsackPro::Config::CI::GithubActions do
79
92
  describe '#project_dir' do
80
93
  subject { described_class.new.project_dir }
81
94
 
82
- context 'when environment exists' do
95
+ context 'when the environment exists' do
83
96
  let(:env) { { 'GITHUB_WORKSPACE' => '/home/runner/work/my-repo-name/my-repo-name' } }
84
97
  it { should eql '/home/runner/work/my-repo-name/my-repo-name' }
85
98
  end
86
99
 
87
- context "when environment doesn't exist" do
100
+ context "when the environment doesn't exist" do
88
101
  it { should be nil }
89
102
  end
90
103
  end
@@ -10,12 +10,12 @@ describe KnapsackPro::Config::CI::GitlabCI do
10
10
  describe '#node_total' do
11
11
  subject { described_class.new.node_total }
12
12
 
13
- context 'when environment exists' do
13
+ context 'when the environment exists' do
14
14
  let(:env) { { 'CI_NODE_TOTAL' => 4 } }
15
15
  it { should eql 4 }
16
16
  end
17
17
 
18
- context "when environment doesn't exist" do
18
+ context "when the environment doesn't exist" do
19
19
  it { should be nil }
20
20
  end
21
21
  end
@@ -23,12 +23,12 @@ describe KnapsackPro::Config::CI::GitlabCI do
23
23
  describe '#node_index' do
24
24
  subject { described_class.new.node_index }
25
25
 
26
- context 'when environment exists and is in GitLab CI' do
26
+ context 'when the environment exists and is in GitLab CI' do
27
27
  let(:env) { { 'CI_NODE_INDEX' => 4, 'GITLAB_CI' => 'true' } }
28
28
  it { should eql 3 }
29
29
  end
30
30
 
31
- context "when environment doesn't exist" do
31
+ context "when the environment doesn't exist" do
32
32
  it { should be nil }
33
33
  end
34
34
  end
@@ -46,7 +46,7 @@ describe KnapsackPro::Config::CI::GitlabCI do
46
46
  it { should eql 7046508 }
47
47
  end
48
48
 
49
- context "when environment doesn't exist" do
49
+ context "when the environment doesn't exist" do
50
50
  it { should be nil }
51
51
  end
52
52
  end
@@ -64,7 +64,7 @@ describe KnapsackPro::Config::CI::GitlabCI do
64
64
  it { should eql 'f76c468e3e1d570f71f5822b1e48bb04' }
65
65
  end
66
66
 
67
- context "when environment doesn't exist" do
67
+ context "when the environment doesn't exist" do
68
68
  it { should be nil }
69
69
  end
70
70
  end
@@ -82,7 +82,7 @@ describe KnapsackPro::Config::CI::GitlabCI do
82
82
  it { should eql 'main' }
83
83
  end
84
84
 
85
- context "when environment doesn't exist" do
85
+ context "when the environment doesn't exist" do
86
86
  it { should be nil }
87
87
  end
88
88
  end
@@ -90,12 +90,12 @@ describe KnapsackPro::Config::CI::GitlabCI do
90
90
  describe '#project_dir' do
91
91
  subject { described_class.new.project_dir }
92
92
 
93
- context 'when environment exists' do
93
+ context 'when the environment exists' do
94
94
  let(:env) { { 'CI_PROJECT_DIR' => '/home/user/knapsack_pro-ruby' } }
95
95
  it { should eql '/home/user/knapsack_pro-ruby' }
96
96
  end
97
97
 
98
- context "when environment doesn't exist" do
98
+ context "when the environment doesn't exist" do
99
99
  it { should be nil }
100
100
  end
101
101
  end
@@ -10,12 +10,12 @@ describe KnapsackPro::Config::CI::Heroku do
10
10
  describe '#node_total' do
11
11
  subject { described_class.new.node_total }
12
12
 
13
- context 'when environment exists' do
13
+ context 'when the environment exists' do
14
14
  let(:env) { { 'CI_NODE_TOTAL' => 4 } }
15
15
  it { should eql 4 }
16
16
  end
17
17
 
18
- context "when environment doesn't exist" do
18
+ context "when the environment doesn't exist" do
19
19
  it { should be nil }
20
20
  end
21
21
  end
@@ -23,12 +23,12 @@ describe KnapsackPro::Config::CI::Heroku do
23
23
  describe '#node_index' do
24
24
  subject { described_class.new.node_index }
25
25
 
26
- context 'when environment exists' do
26
+ context 'when the environment exists' do
27
27
  let(:env) { { 'CI_NODE_INDEX' => 3 } }
28
28
  it { should eql 3 }
29
29
  end
30
30
 
31
- context "when environment doesn't exist" do
31
+ context "when the environment doesn't exist" do
32
32
  it { should be nil }
33
33
  end
34
34
  end
@@ -36,12 +36,12 @@ describe KnapsackPro::Config::CI::Heroku do
36
36
  describe '#node_build_id' do
37
37
  subject { described_class.new.node_build_id }
38
38
 
39
- context 'when environment exists' do
39
+ context 'when the environment exists' do
40
40
  let(:env) { { 'HEROKU_TEST_RUN_ID' => 1234 } }
41
41
  it { should eql 1234 }
42
42
  end
43
43
 
44
- context "when environment doesn't exist" do
44
+ context "when the environment doesn't exist" do
45
45
  it { should be nil }
46
46
  end
47
47
  end
@@ -49,12 +49,12 @@ describe KnapsackPro::Config::CI::Heroku do
49
49
  describe '#commit_hash' do
50
50
  subject { described_class.new.commit_hash }
51
51
 
52
- context 'when environment exists' do
52
+ context 'when the environment exists' do
53
53
  let(:env) { { 'HEROKU_TEST_RUN_COMMIT_VERSION' => 'abbaec3ee5d334fd658da35646b42bc5' } }
54
54
  it { should eql 'abbaec3ee5d334fd658da35646b42bc5' }
55
55
  end
56
56
 
57
- context "when environment doesn't exist" do
57
+ context "when the environment doesn't exist" do
58
58
  it { should be nil }
59
59
  end
60
60
  end
@@ -62,12 +62,12 @@ describe KnapsackPro::Config::CI::Heroku do
62
62
  describe '#branch' do
63
63
  subject { described_class.new.branch }
64
64
 
65
- context 'when environment exists' do
65
+ context 'when the environment exists' do
66
66
  let(:env) { { 'HEROKU_TEST_RUN_BRANCH' => 'master' } }
67
67
  it { should eql 'master' }
68
68
  end
69
69
 
70
- context "when environment doesn't exist" do
70
+ context "when the environment doesn't exist" do
71
71
  it { should be nil }
72
72
  end
73
73
  end
@@ -75,12 +75,12 @@ describe KnapsackPro::Config::CI::Heroku do
75
75
  describe '#project_dir' do
76
76
  subject { described_class.new.project_dir }
77
77
 
78
- context 'when environment exists' do
78
+ context 'when the environment exists' do
79
79
  let(:env) { { 'HEROKU_TEST_RUN_ID' => 1234 } }
80
80
  it { should eq '/app' }
81
81
  end
82
82
 
83
- context "when environment doesn't exist" do
83
+ context "when the environment doesn't exist" do
84
84
  it { should be nil }
85
85
  end
86
86
  end
@@ -10,12 +10,12 @@ describe KnapsackPro::Config::CI::Semaphore2 do
10
10
  describe '#node_total' do
11
11
  subject { described_class.new.node_total }
12
12
 
13
- context 'when environment exists' do
13
+ context 'when the environment exists' do
14
14
  let(:env) { { 'SEMAPHORE_JOB_COUNT' => 4 } }
15
15
  it { should eql 4 }
16
16
  end
17
17
 
18
- context "when environment doesn't exist" do
18
+ context "when the environment doesn't exist" do
19
19
  it { should be nil }
20
20
  end
21
21
  end
@@ -23,12 +23,12 @@ describe KnapsackPro::Config::CI::Semaphore2 do
23
23
  describe '#node_index' do
24
24
  subject { described_class.new.node_index }
25
25
 
26
- context 'when environment exists' do
26
+ context 'when the environment exists' do
27
27
  let(:env) { { 'SEMAPHORE_JOB_INDEX' => 4 } }
28
28
  it { should eql 3 }
29
29
  end
30
30
 
31
- context "when environment doesn't exist" do
31
+ context "when the environment doesn't exist" do
32
32
  it { should be nil }
33
33
  end
34
34
  end
@@ -36,12 +36,12 @@ describe KnapsackPro::Config::CI::Semaphore2 do
36
36
  describe '#node_build_id' do
37
37
  subject { described_class.new.node_build_id }
38
38
 
39
- context 'when environment exists' do
39
+ context 'when the environment exists' do
40
40
  let(:env) { { 'SEMAPHORE_WORKFLOW_ID' => 123 } }
41
41
  it { should eql 123 }
42
42
  end
43
43
 
44
- context "when environment doesn't exist" do
44
+ context "when the environment doesn't exist" do
45
45
  it { should be nil }
46
46
  end
47
47
  end
@@ -49,12 +49,12 @@ describe KnapsackPro::Config::CI::Semaphore2 do
49
49
  describe '#commit_hash' do
50
50
  subject { described_class.new.commit_hash }
51
51
 
52
- context 'when environment exists' do
52
+ context 'when the environment exists' do
53
53
  let(:env) { { 'SEMAPHORE_GIT_SHA' => '4323320992a21b1169e3ac5b7789d379597738e6' } }
54
54
  it { should eql '4323320992a21b1169e3ac5b7789d379597738e6' }
55
55
  end
56
56
 
57
- context "when environment doesn't exist" do
57
+ context "when the environment doesn't exist" do
58
58
  it { should be nil }
59
59
  end
60
60
  end
@@ -62,12 +62,12 @@ describe KnapsackPro::Config::CI::Semaphore2 do
62
62
  describe '#branch' do
63
63
  subject { described_class.new.branch }
64
64
 
65
- context 'when environment exists' do
65
+ context 'when the environment exists' do
66
66
  let(:env) { { 'SEMAPHORE_GIT_BRANCH' => 'master' } }
67
67
  it { should eql 'master' }
68
68
  end
69
69
 
70
- context "when environment doesn't exist" do
70
+ context "when the environment doesn't exist" do
71
71
  it { should be nil }
72
72
  end
73
73
  end
@@ -103,7 +103,7 @@ describe KnapsackPro::Config::CI::Semaphore2 do
103
103
  it { should be nil }
104
104
  end
105
105
 
106
- context "when environments don't exist" do
106
+ context "when the environments don't exist" do
107
107
  it { should be nil }
108
108
  end
109
109
  end
@@ -10,12 +10,12 @@ describe KnapsackPro::Config::CI::Semaphore do
10
10
  describe '#node_total' do
11
11
  subject { described_class.new.node_total }
12
12
 
13
- context 'when environment exists' do
13
+ context 'when the environment exists' do
14
14
  let(:env) { { 'SEMAPHORE_THREAD_COUNT' => 4 } }
15
15
  it { should eql 4 }
16
16
  end
17
17
 
18
- context "when environment doesn't exist" do
18
+ context "when the environment doesn't exist" do
19
19
  it { should be nil }
20
20
  end
21
21
  end
@@ -23,12 +23,12 @@ describe KnapsackPro::Config::CI::Semaphore do
23
23
  describe '#node_index' do
24
24
  subject { described_class.new.node_index }
25
25
 
26
- context 'when environment exists' do
26
+ context 'when the environment exists' do
27
27
  let(:env) { { 'SEMAPHORE_CURRENT_THREAD' => 4 } }
28
28
  it { should eql 3 }
29
29
  end
30
30
 
31
- context "when environment doesn't exist" do
31
+ context "when the environment doesn't exist" do
32
32
  it { should be nil }
33
33
  end
34
34
  end
@@ -36,12 +36,12 @@ describe KnapsackPro::Config::CI::Semaphore do
36
36
  describe '#node_build_id' do
37
37
  subject { described_class.new.node_build_id }
38
38
 
39
- context 'when environment exists' do
39
+ context 'when the environment exists' do
40
40
  let(:env) { { 'SEMAPHORE_BUILD_NUMBER' => 23 } }
41
41
  it { should eql 23 }
42
42
  end
43
43
 
44
- context "when environment doesn't exist" do
44
+ context "when the environment doesn't exist" do
45
45
  it { should be nil }
46
46
  end
47
47
  end
@@ -49,12 +49,12 @@ describe KnapsackPro::Config::CI::Semaphore do
49
49
  describe '#commit_hash' do
50
50
  subject { described_class.new.commit_hash }
51
51
 
52
- context 'when environment exists' do
52
+ context 'when the environment exists' do
53
53
  let(:env) { { 'REVISION' => '3fa64859337f6e56409d49f865d13fd7' } }
54
54
  it { should eql '3fa64859337f6e56409d49f865d13fd7' }
55
55
  end
56
56
 
57
- context "when environment doesn't exist" do
57
+ context "when the environment doesn't exist" do
58
58
  it { should be nil }
59
59
  end
60
60
  end
@@ -62,12 +62,12 @@ describe KnapsackPro::Config::CI::Semaphore do
62
62
  describe '#branch' do
63
63
  subject { described_class.new.branch }
64
64
 
65
- context 'when environment exists' do
65
+ context 'when the environment exists' do
66
66
  let(:env) { { 'BRANCH_NAME' => 'master' } }
67
67
  it { should eql 'master' }
68
68
  end
69
69
 
70
- context "when environment doesn't exist" do
70
+ context "when the environment doesn't exist" do
71
71
  it { should be nil }
72
72
  end
73
73
  end
@@ -75,12 +75,12 @@ describe KnapsackPro::Config::CI::Semaphore do
75
75
  describe '#project_dir' do
76
76
  subject { described_class.new.project_dir }
77
77
 
78
- context 'when environment exists' do
78
+ context 'when the environment exists' do
79
79
  let(:env) { { 'SEMAPHORE_PROJECT_DIR' => '/home/runner/knapsack_pro-ruby' } }
80
80
  it { should eql '/home/runner/knapsack_pro-ruby' }
81
81
  end
82
82
 
83
- context "when environment doesn't exist" do
83
+ context "when the environment doesn't exist" do
84
84
  it { should be nil }
85
85
  end
86
86
  end
@@ -22,12 +22,12 @@ describe KnapsackPro::Config::CI::Travis do
22
22
  describe '#node_build_id' do
23
23
  subject { described_class.new.node_build_id }
24
24
 
25
- context 'when environment exists' do
25
+ context 'when the environment exists' do
26
26
  let(:env) { { 'TRAVIS_BUILD_NUMBER' => 4 } }
27
27
  it { should eql 4 }
28
28
  end
29
29
 
30
- context "when environment doesn't exist" do
30
+ context "when the environment doesn't exist" do
31
31
  it { should be nil }
32
32
  end
33
33
  end
@@ -35,12 +35,12 @@ describe KnapsackPro::Config::CI::Travis do
35
35
  describe '#commit_hash' do
36
36
  subject { described_class.new.commit_hash }
37
37
 
38
- context 'when environment exists' do
38
+ context 'when the environment exists' do
39
39
  let(:env) { { 'TRAVIS_COMMIT' => '3fa64859337f6e56409d49f865d13fd7' } }
40
40
  it { should eql '3fa64859337f6e56409d49f865d13fd7' }
41
41
  end
42
42
 
43
- context "when environment doesn't exist" do
43
+ context "when the environment doesn't exist" do
44
44
  it { should be nil }
45
45
  end
46
46
  end
@@ -48,12 +48,12 @@ describe KnapsackPro::Config::CI::Travis do
48
48
  describe '#branch' do
49
49
  subject { described_class.new.branch }
50
50
 
51
- context 'when environment exists' do
51
+ context 'when the environment exists' do
52
52
  let(:env) { { 'TRAVIS_BRANCH' => 'master' } }
53
53
  it { should eql 'master' }
54
54
  end
55
55
 
56
- context "when environment doesn't exist" do
56
+ context "when the environment doesn't exist" do
57
57
  it { should be nil }
58
58
  end
59
59
  end
@@ -61,12 +61,12 @@ describe KnapsackPro::Config::CI::Travis do
61
61
  describe '#project_dir' do
62
62
  subject { described_class.new.project_dir }
63
63
 
64
- context 'when environment exists' do
64
+ context 'when the environment exists' do
65
65
  let(:env) { { 'TRAVIS_BUILD_DIR' => '/home/travis/build/KnapsackPro/rails-app-with-knapsack_pro' } }
66
66
  it { should eql '/home/travis/build/KnapsackPro/rails-app-with-knapsack_pro' }
67
67
  end
68
68
 
69
- context "when environment doesn't exist" do
69
+ context "when the environment doesn't exist" do
70
70
  it { should be nil }
71
71
  end
72
72
  end
@@ -72,8 +72,10 @@ describe KnapsackPro::Config::Env do
72
72
  end
73
73
  end
74
74
 
75
- context "when ENV doesn't exist" do
76
- it { should eq 'missing-build-id' }
75
+ context "when ENV does not exist" do
76
+ it 'raises' do
77
+ expect { subject }.to raise_error(/Missing environment variable KNAPSACK_PRO_CI_NODE_BUILD_ID/)
78
+ end
77
79
  end
78
80
  end
79
81
 
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: 3.11.0
4
+ version: 4.1.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-05-04 00:00:00.000000000 Z
11
+ date: 2023-05-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake