knapsack_pro 4.0.0 → 5.0.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 (34) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +28 -2
  3. data/lib/knapsack_pro/config/ci/app_veyor.rb +8 -0
  4. data/lib/knapsack_pro/config/ci/base.rb +7 -0
  5. data/lib/knapsack_pro/config/ci/buildkite.rb +8 -0
  6. data/lib/knapsack_pro/config/ci/circle.rb +8 -0
  7. data/lib/knapsack_pro/config/ci/cirrus_ci.rb +8 -0
  8. data/lib/knapsack_pro/config/ci/codefresh.rb +8 -0
  9. data/lib/knapsack_pro/config/ci/codeship.rb +8 -0
  10. data/lib/knapsack_pro/config/ci/github_actions.rb +16 -0
  11. data/lib/knapsack_pro/config/ci/gitlab_ci.rb +8 -0
  12. data/lib/knapsack_pro/config/ci/heroku.rb +8 -0
  13. data/lib/knapsack_pro/config/ci/semaphore.rb +8 -0
  14. data/lib/knapsack_pro/config/ci/semaphore2.rb +9 -0
  15. data/lib/knapsack_pro/config/ci/travis.rb +8 -0
  16. data/lib/knapsack_pro/config/env.rb +20 -11
  17. data/lib/knapsack_pro/version.rb +1 -1
  18. data/lib/tasks/queue/cucumber.rake +5 -0
  19. data/lib/tasks/queue/minitest.rake +5 -0
  20. data/lib/tasks/queue/rspec.rake +5 -0
  21. data/spec/knapsack_pro/config/ci/app_veyor_spec.rb +8 -8
  22. data/spec/knapsack_pro/config/ci/buildkite_spec.rb +14 -14
  23. data/spec/knapsack_pro/config/ci/circle_spec.rb +11 -11
  24. data/spec/knapsack_pro/config/ci/cirrus_ci_spec.rb +12 -12
  25. data/spec/knapsack_pro/config/ci/codefresh_spec.rb +6 -6
  26. data/spec/knapsack_pro/config/ci/codeship_spec.rb +6 -6
  27. data/spec/knapsack_pro/config/ci/github_actions_spec.rb +21 -8
  28. data/spec/knapsack_pro/config/ci/gitlab_ci_spec.rb +9 -9
  29. data/spec/knapsack_pro/config/ci/heroku_spec.rb +12 -12
  30. data/spec/knapsack_pro/config/ci/semaphore2_spec.rb +11 -11
  31. data/spec/knapsack_pro/config/ci/semaphore_spec.rb +12 -12
  32. data/spec/knapsack_pro/config/ci/travis_spec.rb +8 -8
  33. data/spec/knapsack_pro/config/env_spec.rb +102 -87
  34. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 290f2d4d36346c2b4d87ccd475600a2fe68b61ed92f0f4c5e3d706321274482c
4
- data.tar.gz: c363a381f9b18c4f8c8449cfe0477c7c6b987c6a356865d1fcdb34849168674b
3
+ metadata.gz: ee1c87eca84a9ac30345268d7d2e9ac71d09003098e5173f73c0a3afccfea7bf
4
+ data.tar.gz: 52d53bd9c42699151ec2ac5ed6d340cbcdd0b632b88f2da60fcae54db3984090
5
5
  SHA512:
6
- metadata.gz: cd0e5c7dbe72f032c6eaa0399bef86a944781adaacb894f3165f4b34720c2bf79cbf7f6f4b316c179ea91fd6f344a653e1441fd02d4e6d4d316e432c301374e9
7
- data.tar.gz: 8f921a5501043c19f52069c4325062102dab01b0cd3ca89657093e4083fe736e6e1d2962fa6beb3c9d0f657d3d05873a7d261a706ad2531eff9edcb9c7163f00
6
+ metadata.gz: 8afa9cc8410a16af780fcc854ebed0f50959eaa8c5cbdbe8fadb67e3822494ef2f18d56ee6158b1503d4db5be129a308e1e7794aab853685163b9888d70f18be
7
+ data.tar.gz: 4304ce7d54d20e43ed4576989f9700ef68f25a099671cb42a578f27ccb6fcc67dd1d2c7c0c546a96a0af9a570bc5b6c8c6c2d0742c6f1868f7a77557cd50d45f
data/CHANGELOG.md CHANGED
@@ -1,8 +1,34 @@
1
- # Change Log
1
+ # Changelog
2
+
3
+ ### 5.0.0
4
+
5
+ * __(breaking change)__ Use `KNAPSACK_PRO_FIXED_QUEUE_SPLIT=true` as default value in Queue Mode and use `false` for proper CI providers
6
+
7
+ https://github.com/KnapsackPro/knapsack_pro-ruby/pull/198
8
+
9
+ * Detect CI from environment and get the correct ENVs instead of trying all of them and risk conflicts
10
+
11
+ https://github.com/KnapsackPro/knapsack_pro-ruby/pull/201
12
+
13
+ * Set `RAILS_ENV=test` / `RACK_ENV=test` in Queue Mode
14
+
15
+ https://github.com/KnapsackPro/knapsack_pro-ruby/pull/199
16
+
17
+ https://github.com/KnapsackPro/knapsack_pro-ruby/compare/v4.1.0...v5.0.0
18
+
19
+ ### 4.1.0
20
+
21
+ * Add support for CI node retry count on GitHub Actions
22
+
23
+ __(breaking change)__ for open-source forked repositories using GitHub Actions. See a fix in PR description:
24
+
25
+ https://github.com/KnapsackPro/knapsack_pro-ruby/pull/197
26
+
27
+ https://github.com/KnapsackPro/knapsack_pro-ruby/compare/v4.0.0...v4.1.0
2
28
 
3
29
  ### 4.0.0
4
30
 
5
- * Raise when `KNAPSACK_PRO_CI_NODE_BUILD_ID` is missing
31
+ * __(breaking change)__ Raise when `KNAPSACK_PRO_CI_NODE_BUILD_ID` is missing
6
32
 
7
33
  https://github.com/KnapsackPro/knapsack_pro-ruby/pull/195
8
34
 
@@ -26,6 +26,14 @@ module KnapsackPro
26
26
  def project_dir
27
27
  ENV['APPVEYOR_BUILD_FOLDER']
28
28
  end
29
+
30
+ def detected
31
+ ENV.key?('APPVEYOR') ? self.class : nil
32
+ end
33
+
34
+ def fixed_queue_split
35
+ false
36
+ end
29
37
  end
30
38
  end
31
39
  end
@@ -25,6 +25,13 @@ module KnapsackPro
25
25
 
26
26
  def user_seat
27
27
  end
28
+
29
+ def detected
30
+ end
31
+
32
+ def fixed_queue_split
33
+ true
34
+ end
28
35
  end
29
36
  end
30
37
  end
@@ -33,6 +33,14 @@ module KnapsackPro
33
33
  def user_seat
34
34
  ENV['BUILDKITE_BUILD_AUTHOR'] || ENV['BUILDKITE_BUILD_CREATOR']
35
35
  end
36
+
37
+ def detected
38
+ ENV.key?('BUILDKITE') ? self.class : nil
39
+ end
40
+
41
+ def fixed_queue_split
42
+ true
43
+ end
36
44
  end
37
45
  end
38
46
  end
@@ -29,6 +29,14 @@ module KnapsackPro
29
29
  def user_seat
30
30
  ENV['CIRCLE_USERNAME'] || ENV['CIRCLE_PR_USERNAME']
31
31
  end
32
+
33
+ def detected
34
+ ENV.key?('CIRCLECI') ? self.class : nil
35
+ end
36
+
37
+ def fixed_queue_split
38
+ false
39
+ end
32
40
  end
33
41
  end
34
42
  end
@@ -25,6 +25,14 @@ module KnapsackPro
25
25
  def project_dir
26
26
  ENV['CIRRUS_WORKING_DIR']
27
27
  end
28
+
29
+ def detected
30
+ ENV.key?('CIRRUS_CI') ? self.class : nil
31
+ end
32
+
33
+ def fixed_queue_split
34
+ false
35
+ end
28
36
  end
29
37
  end
30
38
  end
@@ -26,6 +26,14 @@ module KnapsackPro
26
26
  def project_dir
27
27
  # not provided
28
28
  end
29
+
30
+ def detected
31
+ ENV.key?('CF_BUILD_ID') ? self.class : nil
32
+ end
33
+
34
+ def fixed_queue_split
35
+ false
36
+ end
29
37
  end
30
38
  end
31
39
  end
@@ -25,6 +25,14 @@ module KnapsackPro
25
25
  def project_dir
26
26
  # not provided
27
27
  end
28
+
29
+ def detected
30
+ ENV['CI_NAME'] == 'codeship' ? self.class : nil
31
+ end
32
+
33
+ def fixed_queue_split
34
+ true
35
+ end
28
36
  end
29
37
  end
30
38
  end
@@ -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
@@ -33,6 +41,14 @@ module KnapsackPro
33
41
  def user_seat
34
42
  ENV['GITHUB_ACTOR']
35
43
  end
44
+
45
+ def detected
46
+ ENV.key?('GITHUB_ACTIONS') ? self.class : nil
47
+ end
48
+
49
+ def fixed_queue_split
50
+ true
51
+ end
36
52
  end
37
53
  end
38
54
  end
@@ -37,6 +37,14 @@ module KnapsackPro
37
37
  ENV['GITLAB_USER_NAME'] || # Gitlab Release 10.0
38
38
  ENV['GITLAB_USER_EMAIL'] # Gitlab Release 8.12
39
39
  end
40
+
41
+ def detected
42
+ ENV.key?('GITLAB_CI') ? self.class : nil
43
+ end
44
+
45
+ def fixed_queue_split
46
+ false
47
+ end
40
48
  end
41
49
  end
42
50
  end
@@ -25,6 +25,14 @@ module KnapsackPro
25
25
  def project_dir
26
26
  '/app' if node_build_id
27
27
  end
28
+
29
+ def detected
30
+ ENV.key?('HEROKU_TEST_RUN_ID') ? self.class : nil
31
+ end
32
+
33
+ def fixed_queue_split
34
+ false
35
+ end
28
36
  end
29
37
  end
30
38
  end
@@ -26,6 +26,14 @@ module KnapsackPro
26
26
  def project_dir
27
27
  ENV['SEMAPHORE_PROJECT_DIR']
28
28
  end
29
+
30
+ def detected
31
+ ENV.key?('SEMAPHORE_BUILD_NUMBER') ? self.class : nil
32
+ end
33
+
34
+ def fixed_queue_split
35
+ false
36
+ end
29
37
  end
30
38
  end
31
39
  end
@@ -29,6 +29,15 @@ module KnapsackPro
29
29
  "#{ENV['HOME']}/#{ENV['SEMAPHORE_GIT_DIR']}"
30
30
  end
31
31
  end
32
+
33
+ def detected
34
+ # check 2 keys to be sure we are using Semaphore 2.0
35
+ ENV.key?('SEMAPHORE') && ENV.key?('SEMAPHORE_WORKFLOW_ID') ? self.class : nil
36
+ end
37
+
38
+ def fixed_queue_split
39
+ false
40
+ end
32
41
  end
33
42
  end
34
43
  end
@@ -17,6 +17,14 @@ module KnapsackPro
17
17
  def project_dir
18
18
  ENV['TRAVIS_BUILD_DIR']
19
19
  end
20
+
21
+ def detected
22
+ ENV.key?('TRAVIS') ? self.class : nil
23
+ end
24
+
25
+ def fixed_queue_split
26
+ true
27
+ end
20
28
  end
21
29
  end
22
30
  end
@@ -186,7 +186,16 @@ module KnapsackPro
186
186
  end
187
187
 
188
188
  def fixed_queue_split
189
- ENV.fetch('KNAPSACK_PRO_FIXED_QUEUE_SPLIT', false)
189
+ @fixed_queue_split ||= begin
190
+ env_name = 'KNAPSACK_PRO_FIXED_QUEUE_SPLIT'
191
+ computed = ENV.fetch(env_name, ci_env_for(:fixed_queue_split)).to_s
192
+
193
+ if !ENV.key?(env_name)
194
+ KnapsackPro.logger.info("#{env_name} is not set. Using default value: #{computed}. Learn more at #{KnapsackPro::Urls::FIXED_QUEUE_SPLIT}")
195
+ end
196
+
197
+ computed
198
+ end
190
199
  end
191
200
 
192
201
  def fixed_queue_split?
@@ -246,17 +255,17 @@ module KnapsackPro
246
255
  end
247
256
 
248
257
  def ci_env_for(env_name)
249
- value = nil
250
- ci_list = KnapsackPro::Config::CI.constants - [:Base, :GitlabCI]
251
- # load GitLab CI first to avoid edge case with order of loading envs for CI_NODE_INDEX
252
- ci_list = [:GitlabCI] + ci_list
253
- ci_list.each do |ci_name|
254
- ci_class = Object.const_get("KnapsackPro::Config::CI::#{ci_name}")
255
- ci = ci_class.new
256
- value = ci.send(env_name)
257
- break unless value.nil?
258
+ detected_ci.new.send(env_name)
259
+ end
260
+
261
+ def detected_ci
262
+ detected = KnapsackPro::Config::CI.constants.map do |constant|
263
+ Object.const_get("KnapsackPro::Config::CI::#{constant}").new.detected
258
264
  end
259
- value
265
+ .compact
266
+ .first
267
+
268
+ detected || KnapsackPro::Config::CI::Base
260
269
  end
261
270
 
262
271
  def log_level
@@ -1,3 +1,3 @@
1
1
  module KnapsackPro
2
- VERSION = '4.0.0'
2
+ VERSION = '5.0.0'
3
3
  end
@@ -3,6 +3,11 @@ require 'knapsack_pro'
3
3
  namespace :knapsack_pro do
4
4
  namespace :queue do
5
5
  task :cucumber, [:cucumber_args] do |_, args|
6
+ Kernel.system("RAILS_ENV=test RACK_ENV=test #{$PROGRAM_NAME} 'knapsack_pro:queue:cucumber_go[#{args[:cucumber_args]}]'")
7
+ Kernel.exit($?.exitstatus)
8
+ end
9
+
10
+ task :cucumber_go, [:cucumber_args] do |_, args|
6
11
  KnapsackPro::Runners::Queue::CucumberRunner.run(args[:cucumber_args])
7
12
  end
8
13
  end
@@ -3,6 +3,11 @@ require 'knapsack_pro'
3
3
  namespace :knapsack_pro do
4
4
  namespace :queue do
5
5
  task :minitest, [:minitest_args] do |_, args|
6
+ Kernel.system("RAILS_ENV=test RACK_ENV=test #{$PROGRAM_NAME} 'knapsack_pro:queue:minitest_go[#{args[:minitest_args]}]'")
7
+ Kernel.exit($?.exitstatus)
8
+ end
9
+
10
+ task :minitest_go, [:minitest_args] do |_, args|
6
11
  KnapsackPro::Runners::Queue::MinitestRunner.run(args[:minitest_args])
7
12
  end
8
13
  end
@@ -3,6 +3,11 @@ require 'knapsack_pro'
3
3
  namespace :knapsack_pro do
4
4
  namespace :queue do
5
5
  task :rspec, [:rspec_args] do |_, args|
6
+ Kernel.system("RAILS_ENV=test RACK_ENV=test #{$PROGRAM_NAME} 'knapsack_pro:queue:rspec_go[#{args[:rspec_args]}]'")
7
+ Kernel.exit($?.exitstatus)
8
+ end
9
+
10
+ task :rspec_go, [:rspec_args] do |_, args|
6
11
  KnapsackPro::Runners::Queue::RSpecRunner.run(args[:rspec_args])
7
12
  end
8
13
  end
@@ -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