knapsack_pro 10.0.1 → 11.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.
- checksums.yaml +4 -4
- data/lib/knapsack_pro/adapters/base_adapter.rb +6 -6
- data/lib/knapsack_pro/adapters/minitest_adapter.rb +3 -3
- data/lib/knapsack_pro/adapters/rspec_adapter.rb +3 -3
- data/lib/knapsack_pro/client/api/v1/build_distributions.rb +0 -29
- data/lib/knapsack_pro/client/api/v2/queues.rb +1 -3
- data/lib/knapsack_pro/client/connection.rb +25 -12
- data/lib/knapsack_pro/commands.rb +8 -8
- data/lib/knapsack_pro/config/ci/app_veyor.rb +0 -8
- data/lib/knapsack_pro/config/ci/base.rb +0 -7
- data/lib/knapsack_pro/config/ci/buildkite.rb +1 -9
- data/lib/knapsack_pro/config/ci/circle.rb +0 -8
- data/lib/knapsack_pro/config/ci/cirrus_ci.rb +0 -8
- data/lib/knapsack_pro/config/ci/codefresh.rb +0 -8
- data/lib/knapsack_pro/config/ci/codeship.rb +0 -8
- data/lib/knapsack_pro/config/ci/github_actions.rb +2 -10
- data/lib/knapsack_pro/config/ci/gitlab_ci.rb +0 -9
- data/lib/knapsack_pro/config/ci/heroku.rb +1 -9
- data/lib/knapsack_pro/config/ci/semaphore.rb +0 -8
- data/lib/knapsack_pro/config/ci/semaphore2.rb +0 -8
- data/lib/knapsack_pro/config/ci/travis.rb +0 -8
- data/lib/knapsack_pro/config/env.rb +12 -42
- data/lib/knapsack_pro/crypto/branch_encryptor.rb +4 -5
- data/lib/knapsack_pro/extensions/rspec_extension.rb +1 -1
- data/lib/knapsack_pro/queue_allocator.rb +33 -88
- data/lib/knapsack_pro/regular_allocator.rb +41 -20
- data/lib/knapsack_pro/report.rb +37 -8
- data/lib/knapsack_pro/repository_adapters/git_adapter.rb +10 -2
- data/lib/knapsack_pro/runners/cucumber_runner.rb +2 -1
- data/lib/knapsack_pro/runners/minitest_runner.rb +2 -1
- data/lib/knapsack_pro/runners/queue/base_runner.rb +17 -8
- data/lib/knapsack_pro/runners/queue/cucumber_runner.rb +1 -1
- data/lib/knapsack_pro/runners/queue/minitest_runner.rb +1 -1
- data/lib/knapsack_pro/runners/queue/rspec_runner.rb +3 -3
- data/lib/knapsack_pro/runners/rspec_runner.rb +2 -1
- data/lib/knapsack_pro/runners/spinach_runner.rb +2 -1
- data/lib/knapsack_pro/runners/test_unit_runner.rb +2 -1
- data/lib/knapsack_pro/tracker.rb +2 -4
- data/lib/knapsack_pro/urls.rb +4 -10
- data/lib/knapsack_pro/version.rb +1 -1
- data/lib/tasks/queue/rspec.rake +5 -1
- metadata +2 -3
- data/lib/knapsack_pro/client/api/v1/queues.rb +0 -44
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 228fc40233719e372291f82fe1c6d5c25ed0396ae12fb3e0f28edac71e69754d
|
|
4
|
+
data.tar.gz: ce7cb564e98830745734efd59850e50c43c0abd49ed6131ecd4392801dd4758e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ff6be1076a78549e3f4a8f57362ec560cd482ddd332513280bf67155248e7066478291014cd6f166c904344be81d520f374fdb565884d4540f2344b8577739d1
|
|
7
|
+
data.tar.gz: 8131b135fa3f86574b77ae3576ed538c88c871073c1d9756f283ad88245a84ed50dd55ab203ab330a39e578e5aeedf3e700051f8bab3f622611db9380926e42a
|
|
@@ -41,15 +41,15 @@ module KnapsackPro
|
|
|
41
41
|
KnapsackPro::Config::TempFiles.ensure_temp_directory_exists!
|
|
42
42
|
File.write(self.class.adapter_bind_method_called_file, nil)
|
|
43
43
|
|
|
44
|
-
if KnapsackPro::Config::Env.
|
|
45
|
-
KnapsackPro.logger.debug('
|
|
44
|
+
if KnapsackPro::Config::Env.single_batch_mode?
|
|
45
|
+
KnapsackPro.logger.debug('Single-Batch enabled.')
|
|
46
46
|
bind_time_tracker
|
|
47
47
|
bind_save_report
|
|
48
48
|
end
|
|
49
49
|
|
|
50
|
-
if KnapsackPro::Config::Env.
|
|
51
|
-
KnapsackPro.logger.debug('
|
|
52
|
-
|
|
50
|
+
if KnapsackPro::Config::Env.normal_mode?
|
|
51
|
+
KnapsackPro.logger.debug('Enabled.')
|
|
52
|
+
bind_normal_mode
|
|
53
53
|
end
|
|
54
54
|
end
|
|
55
55
|
|
|
@@ -69,7 +69,7 @@ module KnapsackPro
|
|
|
69
69
|
raise NotImplementedError
|
|
70
70
|
end
|
|
71
71
|
|
|
72
|
-
def
|
|
72
|
+
def bind_normal_mode
|
|
73
73
|
bind_before_queue_hook
|
|
74
74
|
bind_after_queue_hook
|
|
75
75
|
bind_time_tracker
|
|
@@ -54,7 +54,7 @@ module KnapsackPro
|
|
|
54
54
|
@@parent_of_test_dir = File.expand_path('../', test_dir_path)
|
|
55
55
|
end
|
|
56
56
|
|
|
57
|
-
module
|
|
57
|
+
module BindNormalModeMinitestPlugin
|
|
58
58
|
def before_setup
|
|
59
59
|
super
|
|
60
60
|
|
|
@@ -74,8 +74,8 @@ module KnapsackPro
|
|
|
74
74
|
end
|
|
75
75
|
end
|
|
76
76
|
|
|
77
|
-
def
|
|
78
|
-
::Minitest::Test.send(:include,
|
|
77
|
+
def bind_normal_mode
|
|
78
|
+
::Minitest::Test.send(:include, BindNormalModeMinitestPlugin)
|
|
79
79
|
|
|
80
80
|
add_post_run_callback do
|
|
81
81
|
KnapsackPro.logger.debug(KnapsackPro::Presenter.global_time)
|
|
@@ -107,7 +107,7 @@ module KnapsackPro
|
|
|
107
107
|
|
|
108
108
|
def bind_time_tracker
|
|
109
109
|
ensure_no_focus!
|
|
110
|
-
|
|
110
|
+
bind_single_batch_mode_time_tracker
|
|
111
111
|
log_tests_duration
|
|
112
112
|
end
|
|
113
113
|
|
|
@@ -136,8 +136,8 @@ module KnapsackPro
|
|
|
136
136
|
end
|
|
137
137
|
end
|
|
138
138
|
|
|
139
|
-
def
|
|
140
|
-
return unless KnapsackPro::Config::Env.
|
|
139
|
+
def bind_single_batch_mode_time_tracker
|
|
140
|
+
return unless KnapsackPro::Config::Env.single_batch_mode?
|
|
141
141
|
|
|
142
142
|
::RSpec.configure do |config|
|
|
143
143
|
config.append_before(:suite) do
|
|
@@ -5,36 +5,7 @@ module KnapsackPro
|
|
|
5
5
|
module API
|
|
6
6
|
module V1
|
|
7
7
|
class BuildDistributions < Base
|
|
8
|
-
TEST_SUITE_SPLIT_CACHE_MISS_CODE = 'TEST_SUITE_SPLIT_CACHE_MISS'
|
|
9
|
-
|
|
10
8
|
class << self
|
|
11
|
-
def subset(args)
|
|
12
|
-
request_hash = {
|
|
13
|
-
:fixed_test_suite_split => KnapsackPro::Config::Env.fixed_test_suite_split,
|
|
14
|
-
:cache_read_attempt => args.fetch(:cache_read_attempt),
|
|
15
|
-
:commit_hash => args.fetch(:commit_hash),
|
|
16
|
-
:branch => args.fetch(:branch),
|
|
17
|
-
:node_total => args.fetch(:node_total),
|
|
18
|
-
:node_index => args.fetch(:node_index),
|
|
19
|
-
:ci_build_id => KnapsackPro::Config::Env.ci_node_build_id,
|
|
20
|
-
:user_seat => KnapsackPro::Config::Env.masked_user_seat,
|
|
21
|
-
:build_author => KnapsackPro::RepositoryAdapters::GitAdapter.new.build_author,
|
|
22
|
-
:commit_authors => KnapsackPro::RepositoryAdapters::GitAdapter.new.commit_authors,
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
unless request_hash[:cache_read_attempt]
|
|
26
|
-
request_hash.merge!({
|
|
27
|
-
:test_files => args.fetch(:test_files)
|
|
28
|
-
})
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
action_class.new(
|
|
32
|
-
endpoint_path: '/v1/build_distributions/subset',
|
|
33
|
-
http_method: :post,
|
|
34
|
-
request_hash: request_hash
|
|
35
|
-
)
|
|
36
|
-
end
|
|
37
|
-
|
|
38
9
|
def last(request_hash)
|
|
39
10
|
action_class.new(
|
|
40
11
|
endpoint_path: '/v1/build_distributions/last',
|
|
@@ -15,10 +15,10 @@ module KnapsackPro
|
|
|
15
15
|
branch: args.fetch(:branch),
|
|
16
16
|
can_initialize_queue: args.fetch(:can_initialize_queue),
|
|
17
17
|
commit_hash: args.fetch(:commit_hash),
|
|
18
|
-
fixed_queue_split: KnapsackPro::Config::Env.fixed_queue_split_?,
|
|
19
18
|
node_index: args.fetch(:node_index),
|
|
20
19
|
node_total: args.fetch(:node_total),
|
|
21
20
|
node_uuid: args.fetch(:node_uuid),
|
|
21
|
+
single_batch: KnapsackPro::Config::Env.single_batch? || args.fetch(:single_batch, false),
|
|
22
22
|
test_queue_id: KnapsackPro::Config::Env.test_queue_id,
|
|
23
23
|
user_seat: KnapsackPro::Config::Env.masked_user_seat
|
|
24
24
|
}
|
|
@@ -59,7 +59,6 @@ module KnapsackPro
|
|
|
59
59
|
can_initialize_queue: true,
|
|
60
60
|
commit_authors: git_adapter.commit_authors,
|
|
61
61
|
commit_hash: repository_adapter.commit_hash,
|
|
62
|
-
fixed_queue_split: KnapsackPro::Config::Env.fixed_queue_split_?,
|
|
63
62
|
node_index: KnapsackPro::Config::Env.ci_node_index,
|
|
64
63
|
node_total: KnapsackPro::Config::Env.ci_node_total,
|
|
65
64
|
node_uuid: SecureRandom.uuid,
|
|
@@ -87,7 +86,6 @@ module KnapsackPro
|
|
|
87
86
|
can_initialize_queue: true,
|
|
88
87
|
commit_authors: git_adapter.commit_authors,
|
|
89
88
|
commit_hash: repository_adapter.commit_hash,
|
|
90
|
-
fixed_queue_split: KnapsackPro::Config::Env.fixed_queue_split_?,
|
|
91
89
|
node_index: KnapsackPro::Config::Env.ci_node_index,
|
|
92
90
|
node_total: KnapsackPro::Config::Env.ci_node_total,
|
|
93
91
|
node_uuid: SecureRandom.uuid,
|
|
@@ -136,24 +136,37 @@ module KnapsackPro
|
|
|
136
136
|
@http_debug_output.string.each_line { |line| logger.warn(line.chomp) }
|
|
137
137
|
|
|
138
138
|
require 'open3'
|
|
139
|
+
require 'shellwords'
|
|
140
|
+
|
|
141
|
+
host = endpoint_uri.host
|
|
142
|
+
port = endpoint_uri.port.to_s
|
|
143
|
+
|
|
139
144
|
[
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
logger.warn(
|
|
148
|
-
logger.warn('=' *
|
|
145
|
+
[['dig', host], {}],
|
|
146
|
+
[['nslookup', host], {}],
|
|
147
|
+
[['curl', '-v', "#{host}:#{port}"], {}],
|
|
148
|
+
[['nc', '-vz', host, port], {}],
|
|
149
|
+
[['openssl', 's_client', '-connect', "#{host}:#{port}"], { stdin_data: '' }]
|
|
150
|
+
].each do |argv, options|
|
|
151
|
+
command = Shellwords.join(argv)
|
|
152
|
+
logger.warn(command)
|
|
153
|
+
logger.warn('=' * command.size)
|
|
149
154
|
begin
|
|
150
|
-
outerr, status = Open3.capture2e(
|
|
155
|
+
outerr, status = Open3.capture2e(*argv, **options)
|
|
151
156
|
logger.warn("Exit status: #{status.exitstatus}")
|
|
152
157
|
outerr.each_line { |line| logger.warn(line.chomp) }
|
|
153
158
|
rescue Errno::ENOENT => e
|
|
154
159
|
logger.warn("Error: #{e}")
|
|
155
160
|
end
|
|
156
161
|
end
|
|
162
|
+
|
|
163
|
+
logger.warn('KNAPSACK_PRO_*')
|
|
164
|
+
logger.warn('==============')
|
|
165
|
+
ENV.each do |key, value|
|
|
166
|
+
next unless key.start_with?('KNAPSACK_PRO')
|
|
167
|
+
next if key.include?('TOKEN')
|
|
168
|
+
logger.warn("#{key}=#{value}")
|
|
169
|
+
end
|
|
157
170
|
end
|
|
158
171
|
|
|
159
172
|
def backoff(attempt_count)
|
|
@@ -225,10 +238,10 @@ module KnapsackPro
|
|
|
225
238
|
# when Fallback Mode is disabled then try more attempts to connect to the API
|
|
226
239
|
return 6 unless KnapsackPro::Config::Env.fallback_mode_enabled?
|
|
227
240
|
|
|
228
|
-
# when
|
|
241
|
+
# when Single-Batch Mode then try more attempts to connect to the API
|
|
229
242
|
# if only one CI node starts Fallback Mode instead of all then we can't guarantee all test files will be run
|
|
230
243
|
# https://github.com/KnapsackPro/knapsack_pro-ruby/pull/124
|
|
231
|
-
return 6 if KnapsackPro::Config::Env.
|
|
244
|
+
return 6 if KnapsackPro::Config::Env.single_batch_mode?
|
|
232
245
|
|
|
233
246
|
# default number of attempts
|
|
234
247
|
4
|
|
@@ -12,49 +12,49 @@ module KnapsackPro
|
|
|
12
12
|
true
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
desc "rspec ['arguments']", "Parallelize RSpec with Knapsack Pro
|
|
15
|
+
desc "rspec ['arguments']", "Parallelize RSpec with Knapsack Pro (single batch)"
|
|
16
16
|
def rspec(arguments = "")
|
|
17
17
|
require "knapsack_pro"
|
|
18
18
|
KnapsackPro::Runners::RSpecRunner.run(arguments)
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
-
desc "queue:rspec ['arguments']", "Parallelize RSpec with Knapsack Pro
|
|
21
|
+
desc "queue:rspec ['arguments']", "Parallelize RSpec with Knapsack Pro"
|
|
22
22
|
def queue_rspec(arguments = "")
|
|
23
23
|
require "knapsack_pro"
|
|
24
24
|
KnapsackPro::Runners::Queue::RSpecRunner.run(arguments)
|
|
25
25
|
end
|
|
26
26
|
|
|
27
|
-
desc "cucumber ['arguments']", "Parallelize Cucumber with Knapsack Pro
|
|
27
|
+
desc "cucumber ['arguments']", "Parallelize Cucumber with Knapsack Pro (single batch)"
|
|
28
28
|
def cucumber(arguments = "")
|
|
29
29
|
require "knapsack_pro"
|
|
30
30
|
KnapsackPro::Runners::CucumberRunner.run(arguments)
|
|
31
31
|
end
|
|
32
32
|
|
|
33
|
-
desc "queue:cucumber ['arguments']", "Parallelize Cucumber with Knapsack Pro
|
|
33
|
+
desc "queue:cucumber ['arguments']", "Parallelize Cucumber with Knapsack Pro"
|
|
34
34
|
def queue_cucumber(arguments = "")
|
|
35
35
|
require "knapsack_pro"
|
|
36
36
|
KnapsackPro::Runners::Queue::CucumberRunner.run(arguments)
|
|
37
37
|
end
|
|
38
38
|
|
|
39
|
-
desc "minitest ['arguments']", "Parallelize Minitest with Knapsack Pro
|
|
39
|
+
desc "minitest ['arguments']", "Parallelize Minitest with Knapsack Pro (single batch)"
|
|
40
40
|
def minitest(arguments = "")
|
|
41
41
|
require "knapsack_pro"
|
|
42
42
|
KnapsackPro::Runners::MinitestRunner.run(arguments)
|
|
43
43
|
end
|
|
44
44
|
|
|
45
|
-
desc "queue:minitest ['arguments']", "Parallelize Minitest with Knapsack Pro
|
|
45
|
+
desc "queue:minitest ['arguments']", "Parallelize Minitest with Knapsack Pro"
|
|
46
46
|
def queue_minitest(arguments = "")
|
|
47
47
|
require "knapsack_pro"
|
|
48
48
|
KnapsackPro::Runners::Queue::MinitestRunner.run(arguments)
|
|
49
49
|
end
|
|
50
50
|
|
|
51
|
-
desc "test_unit ['arguments']", "Parallelize TestUnit with Knapsack Pro
|
|
51
|
+
desc "test_unit ['arguments']", "Parallelize TestUnit with Knapsack Pro (single batch)"
|
|
52
52
|
def test_unit(arguments = "")
|
|
53
53
|
require "knapsack_pro"
|
|
54
54
|
KnapsackPro::Runners::TestUnitRunner.run(arguments)
|
|
55
55
|
end
|
|
56
56
|
|
|
57
|
-
desc "spinach ['arguments']", "Parallelize Spinach with Knapsack Pro
|
|
57
|
+
desc "spinach ['arguments']", "Parallelize Spinach with Knapsack Pro (single batch)"
|
|
58
58
|
def spinach(arguments = "")
|
|
59
59
|
require "knapsack_pro"
|
|
60
60
|
KnapsackPro::Runners::SpinachRunner.run(arguments)
|
|
@@ -13,10 +13,6 @@ module KnapsackPro
|
|
|
13
13
|
# not provided
|
|
14
14
|
end
|
|
15
15
|
|
|
16
|
-
def node_build_id
|
|
17
|
-
ENV['APPVEYOR_BUILD_ID']
|
|
18
|
-
end
|
|
19
|
-
|
|
20
16
|
def commit_hash
|
|
21
17
|
ENV['APPVEYOR_REPO_COMMIT']
|
|
22
18
|
end
|
|
@@ -37,10 +33,6 @@ module KnapsackPro
|
|
|
37
33
|
ENV.key?('APPVEYOR') ? self.class : nil
|
|
38
34
|
end
|
|
39
35
|
|
|
40
|
-
def fixed_queue_split
|
|
41
|
-
false
|
|
42
|
-
end
|
|
43
|
-
|
|
44
36
|
def ci_provider
|
|
45
37
|
"AppVeyor"
|
|
46
38
|
end
|
|
@@ -10,9 +10,6 @@ module KnapsackPro
|
|
|
10
10
|
def node_index
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
def node_build_id
|
|
14
|
-
end
|
|
15
|
-
|
|
16
13
|
def node_retry_count
|
|
17
14
|
end
|
|
18
15
|
|
|
@@ -31,10 +28,6 @@ module KnapsackPro
|
|
|
31
28
|
def detected
|
|
32
29
|
end
|
|
33
30
|
|
|
34
|
-
def fixed_queue_split
|
|
35
|
-
true
|
|
36
|
-
end
|
|
37
|
-
|
|
38
31
|
def ci_provider
|
|
39
32
|
return 'AWS CodeBuild' if ENV.key?('CODEBUILD_BUILD_ARN')
|
|
40
33
|
return 'Azure Pipelines' if ENV.key?('SYSTEM_TEAMFOUNDATIONCOLLECTIONURI')
|
|
@@ -12,10 +12,6 @@ module KnapsackPro
|
|
|
12
12
|
ENV['BUILDKITE_PARALLEL_JOB']
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
def node_build_id
|
|
16
|
-
ENV['BUILDKITE_BUILD_NUMBER']
|
|
17
|
-
end
|
|
18
|
-
|
|
19
15
|
def node_retry_count
|
|
20
16
|
ENV['BUILDKITE_RETRY_COUNT']
|
|
21
17
|
end
|
|
@@ -40,16 +36,12 @@ module KnapsackPro
|
|
|
40
36
|
ENV.key?('BUILDKITE') ? self.class : nil
|
|
41
37
|
end
|
|
42
38
|
|
|
43
|
-
def fixed_queue_split
|
|
44
|
-
true
|
|
45
|
-
end
|
|
46
|
-
|
|
47
39
|
def ci_provider
|
|
48
40
|
"Buildkite"
|
|
49
41
|
end
|
|
50
42
|
|
|
51
43
|
def test_queue_id
|
|
52
|
-
|
|
44
|
+
ENV['BUILDKITE_BUILD_NUMBER']
|
|
53
45
|
end
|
|
54
46
|
end
|
|
55
47
|
end
|
|
@@ -12,10 +12,6 @@ module KnapsackPro
|
|
|
12
12
|
ENV['CIRCLE_NODE_INDEX']
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
def node_build_id
|
|
16
|
-
ENV['CIRCLE_BUILD_NUM']
|
|
17
|
-
end
|
|
18
|
-
|
|
19
15
|
def commit_hash
|
|
20
16
|
ENV['CIRCLE_SHA1']
|
|
21
17
|
end
|
|
@@ -36,10 +32,6 @@ module KnapsackPro
|
|
|
36
32
|
ENV.key?('CIRCLECI') ? self.class : nil
|
|
37
33
|
end
|
|
38
34
|
|
|
39
|
-
def fixed_queue_split
|
|
40
|
-
false
|
|
41
|
-
end
|
|
42
|
-
|
|
43
35
|
def ci_provider
|
|
44
36
|
"CircleCI"
|
|
45
37
|
end
|
|
@@ -12,10 +12,6 @@ module KnapsackPro
|
|
|
12
12
|
ENV['CI_NODE_INDEX']
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
def node_build_id
|
|
16
|
-
ENV['CIRRUS_BUILD_ID']
|
|
17
|
-
end
|
|
18
|
-
|
|
19
15
|
def commit_hash
|
|
20
16
|
ENV['CIRRUS_CHANGE_IN_REPO']
|
|
21
17
|
end
|
|
@@ -36,10 +32,6 @@ module KnapsackPro
|
|
|
36
32
|
ENV.key?('CIRRUS_CI') ? self.class : nil
|
|
37
33
|
end
|
|
38
34
|
|
|
39
|
-
def fixed_queue_split
|
|
40
|
-
false
|
|
41
|
-
end
|
|
42
|
-
|
|
43
35
|
def ci_provider
|
|
44
36
|
"Cirrus CI"
|
|
45
37
|
end
|
|
@@ -13,10 +13,6 @@ module KnapsackPro
|
|
|
13
13
|
# not provided
|
|
14
14
|
end
|
|
15
15
|
|
|
16
|
-
def node_build_id
|
|
17
|
-
ENV['CF_BUILD_ID']
|
|
18
|
-
end
|
|
19
|
-
|
|
20
16
|
def commit_hash
|
|
21
17
|
ENV['CF_REVISION']
|
|
22
18
|
end
|
|
@@ -37,10 +33,6 @@ module KnapsackPro
|
|
|
37
33
|
ENV.key?('CF_BUILD_ID') ? self.class : nil
|
|
38
34
|
end
|
|
39
35
|
|
|
40
|
-
def fixed_queue_split
|
|
41
|
-
false
|
|
42
|
-
end
|
|
43
|
-
|
|
44
36
|
def ci_provider
|
|
45
37
|
"Codefresh"
|
|
46
38
|
end
|
|
@@ -12,10 +12,6 @@ module KnapsackPro
|
|
|
12
12
|
# not provided
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
def node_build_id
|
|
16
|
-
ENV['CI_BUILD_NUMBER']
|
|
17
|
-
end
|
|
18
|
-
|
|
19
15
|
def commit_hash
|
|
20
16
|
ENV['CI_COMMIT_ID']
|
|
21
17
|
end
|
|
@@ -36,10 +32,6 @@ module KnapsackPro
|
|
|
36
32
|
ENV['CI_NAME'] == 'codeship' ? self.class : nil
|
|
37
33
|
end
|
|
38
34
|
|
|
39
|
-
def fixed_queue_split
|
|
40
|
-
true
|
|
41
|
-
end
|
|
42
|
-
|
|
43
35
|
def ci_provider
|
|
44
36
|
"Codeship"
|
|
45
37
|
end
|
|
@@ -13,11 +13,6 @@ module KnapsackPro
|
|
|
13
13
|
# not provided
|
|
14
14
|
end
|
|
15
15
|
|
|
16
|
-
def node_build_id
|
|
17
|
-
# A unique number for each run within a repository. This number does not change if you re-run the workflow run.
|
|
18
|
-
ENV['GITHUB_RUN_ID']
|
|
19
|
-
end
|
|
20
|
-
|
|
21
16
|
def node_retry_count
|
|
22
17
|
# A unique number for each attempt of a particular workflow run in a repository.
|
|
23
18
|
# This number begins at 1 for the workflow run's first attempt, and increments with each re-run.
|
|
@@ -50,16 +45,13 @@ module KnapsackPro
|
|
|
50
45
|
ENV.key?('GITHUB_ACTIONS') ? self.class : nil
|
|
51
46
|
end
|
|
52
47
|
|
|
53
|
-
def fixed_queue_split
|
|
54
|
-
true
|
|
55
|
-
end
|
|
56
|
-
|
|
57
48
|
def ci_provider
|
|
58
49
|
"GitHub Actions"
|
|
59
50
|
end
|
|
60
51
|
|
|
52
|
+
# A unique number for each run within a repository. This number does not change if you re-run the workflow run.
|
|
61
53
|
def test_queue_id
|
|
62
|
-
|
|
54
|
+
ENV['GITHUB_RUN_ID']
|
|
63
55
|
end
|
|
64
56
|
end
|
|
65
57
|
end
|
|
@@ -16,11 +16,6 @@ module KnapsackPro
|
|
|
16
16
|
index.to_i - 1 if index
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
-
def node_build_id
|
|
20
|
-
ENV['CI_PIPELINE_ID'] || # Gitlab Release 9.0+
|
|
21
|
-
ENV['CI_BUILD_ID'] # Gitlab Release 8.x
|
|
22
|
-
end
|
|
23
|
-
|
|
24
19
|
def commit_hash
|
|
25
20
|
ENV['CI_COMMIT_SHA'] || # Gitlab Release 9.0+
|
|
26
21
|
ENV['CI_BUILD_REF'] # Gitlab Release 8.x
|
|
@@ -44,10 +39,6 @@ module KnapsackPro
|
|
|
44
39
|
ENV.key?('GITLAB_CI') ? self.class : nil
|
|
45
40
|
end
|
|
46
41
|
|
|
47
|
-
def fixed_queue_split
|
|
48
|
-
true
|
|
49
|
-
end
|
|
50
|
-
|
|
51
42
|
def ci_provider
|
|
52
43
|
"Gitlab CI"
|
|
53
44
|
end
|
|
@@ -12,10 +12,6 @@ module KnapsackPro
|
|
|
12
12
|
ENV['CI_NODE_INDEX']
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
def node_build_id
|
|
16
|
-
ENV['HEROKU_TEST_RUN_ID']
|
|
17
|
-
end
|
|
18
|
-
|
|
19
15
|
def commit_hash
|
|
20
16
|
ENV['HEROKU_TEST_RUN_COMMIT_VERSION']
|
|
21
17
|
end
|
|
@@ -25,7 +21,7 @@ module KnapsackPro
|
|
|
25
21
|
end
|
|
26
22
|
|
|
27
23
|
def project_dir
|
|
28
|
-
'/app' if
|
|
24
|
+
'/app' if ENV['HEROKU_TEST_RUN_ID']
|
|
29
25
|
end
|
|
30
26
|
|
|
31
27
|
def user_seat
|
|
@@ -36,10 +32,6 @@ module KnapsackPro
|
|
|
36
32
|
ENV.key?('HEROKU_TEST_RUN_ID') ? self.class : nil
|
|
37
33
|
end
|
|
38
34
|
|
|
39
|
-
def fixed_queue_split
|
|
40
|
-
false
|
|
41
|
-
end
|
|
42
|
-
|
|
43
35
|
def ci_provider
|
|
44
36
|
"Heroku CI"
|
|
45
37
|
end
|
|
@@ -15,10 +15,6 @@ module KnapsackPro
|
|
|
15
15
|
index.to_i - 1 if index
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
-
def node_build_id
|
|
19
|
-
ENV['SEMAPHORE_BUILD_NUMBER']
|
|
20
|
-
end
|
|
21
|
-
|
|
22
18
|
def commit_hash
|
|
23
19
|
ENV['REVISION']
|
|
24
20
|
end
|
|
@@ -35,10 +31,6 @@ module KnapsackPro
|
|
|
35
31
|
ENV.key?('SEMAPHORE_BUILD_NUMBER') ? self.class : nil
|
|
36
32
|
end
|
|
37
33
|
|
|
38
|
-
def fixed_queue_split
|
|
39
|
-
false
|
|
40
|
-
end
|
|
41
|
-
|
|
42
34
|
def ci_provider
|
|
43
35
|
"Semaphore CI 1.0"
|
|
44
36
|
end
|
|
@@ -14,10 +14,6 @@ module KnapsackPro
|
|
|
14
14
|
index.to_i - 1 if index
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
-
def node_build_id
|
|
18
|
-
ENV['SEMAPHORE_WORKFLOW_ID']
|
|
19
|
-
end
|
|
20
|
-
|
|
21
17
|
def commit_hash
|
|
22
18
|
ENV['SEMAPHORE_GIT_SHA']
|
|
23
19
|
end
|
|
@@ -42,10 +38,6 @@ module KnapsackPro
|
|
|
42
38
|
ENV.key?('SEMAPHORE') && ENV.key?('SEMAPHORE_WORKFLOW_ID') ? self.class : nil
|
|
43
39
|
end
|
|
44
40
|
|
|
45
|
-
def fixed_queue_split
|
|
46
|
-
false
|
|
47
|
-
end
|
|
48
|
-
|
|
49
41
|
def ci_provider
|
|
50
42
|
"Semaphore CI 2.0"
|
|
51
43
|
end
|
|
@@ -4,10 +4,6 @@ module KnapsackPro
|
|
|
4
4
|
module Config
|
|
5
5
|
module CI
|
|
6
6
|
class Travis < Base
|
|
7
|
-
def node_build_id
|
|
8
|
-
ENV['TRAVIS_BUILD_NUMBER']
|
|
9
|
-
end
|
|
10
|
-
|
|
11
7
|
def commit_hash
|
|
12
8
|
ENV['TRAVIS_COMMIT']
|
|
13
9
|
end
|
|
@@ -28,10 +24,6 @@ module KnapsackPro
|
|
|
28
24
|
ENV.key?('TRAVIS') ? self.class : nil
|
|
29
25
|
end
|
|
30
26
|
|
|
31
|
-
def fixed_queue_split
|
|
32
|
-
true
|
|
33
|
-
end
|
|
34
|
-
|
|
35
27
|
def ci_provider
|
|
36
28
|
"Travis CI"
|
|
37
29
|
end
|