jenkins-builder 0.2.0 → 0.2.5
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/Gemfile.lock +30 -14
- data/exe/jk +1 -1
- data/jenkins-builder.gemspec +2 -1
- data/lib/jenkins/builder/app.rb +72 -41
- data/lib/jenkins/builder/cli.rb +24 -3
- data/lib/jenkins/builder/config.rb +14 -9
- data/lib/jenkins/builder/version.rb +1 -1
- metadata +22 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b3d8b25fd6d3fd82e3fb04b58038f3d536d907510def01ae42ecb6d09ad8bb9b
|
|
4
|
+
data.tar.gz: 9e623633692b17797b3ac2fc3ee425f7b6da70ca1e7ae9acd119d00cfb2e34ce
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 562efc35d87d9e2e3786ee18f994e2445c5927d9349da8c47edbe53a902010345756e2b986d98e03ed287fbdb8b9a6dafe77292ee3fb2b6dce17c0785876db1a
|
|
7
|
+
data.tar.gz: 17350f8058207c60c647767ac91392777a756111cf401b6d9ad4ab8e91fc02374771c469c05057e18cdc3eea47ff6a52f82971ee97fe484fc68cf88baccd6eae
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
jenkins-builder (0.
|
|
4
|
+
jenkins-builder (0.2.5)
|
|
5
|
+
ferrum (~> 0.9)
|
|
5
6
|
jenkins_api_client (~> 1.5.3)
|
|
6
7
|
pastel (~> 0.7.2)
|
|
7
8
|
security (~> 0.1.3)
|
|
@@ -11,10 +12,20 @@ PATH
|
|
|
11
12
|
GEM
|
|
12
13
|
remote: https://gems.ruby-china.com/
|
|
13
14
|
specs:
|
|
15
|
+
addressable (2.7.0)
|
|
16
|
+
public_suffix (>= 2.0.2, < 5.0)
|
|
14
17
|
byebug (10.0.2)
|
|
18
|
+
chef-utils (16.3.38)
|
|
19
|
+
cliver (0.3.2)
|
|
15
20
|
coderay (1.1.2)
|
|
21
|
+
concurrent-ruby (1.1.6)
|
|
16
22
|
diff-lcs (1.3)
|
|
17
|
-
equatable (0.
|
|
23
|
+
equatable (0.6.1)
|
|
24
|
+
ferrum (0.9)
|
|
25
|
+
addressable (~> 2.5)
|
|
26
|
+
cliver (~> 0.3)
|
|
27
|
+
concurrent-ruby (~> 1.1)
|
|
28
|
+
websocket-driver (>= 0.6, < 0.8)
|
|
18
29
|
jenkins_api_client (1.5.3)
|
|
19
30
|
json (>= 1.0)
|
|
20
31
|
mixlib-shellout (>= 1.1.0)
|
|
@@ -22,15 +33,16 @@ GEM
|
|
|
22
33
|
socksify (>= 1.7.0)
|
|
23
34
|
terminal-table (>= 1.4.0)
|
|
24
35
|
thor (>= 0.16.0)
|
|
25
|
-
json (2.1
|
|
36
|
+
json (2.3.1)
|
|
26
37
|
method_source (0.9.1)
|
|
27
38
|
mini_portile2 (2.4.0)
|
|
28
|
-
mixlib-shellout (
|
|
29
|
-
|
|
39
|
+
mixlib-shellout (3.1.2)
|
|
40
|
+
chef-utils
|
|
41
|
+
nokogiri (1.10.10)
|
|
30
42
|
mini_portile2 (~> 2.4.0)
|
|
31
|
-
pastel (0.7.
|
|
32
|
-
equatable (~> 0.
|
|
33
|
-
tty-color (~> 0.
|
|
43
|
+
pastel (0.7.4)
|
|
44
|
+
equatable (~> 0.6)
|
|
45
|
+
tty-color (~> 0.5)
|
|
34
46
|
pry (0.11.3)
|
|
35
47
|
coderay (~> 1.1.0)
|
|
36
48
|
method_source (~> 0.9.0)
|
|
@@ -40,6 +52,7 @@ GEM
|
|
|
40
52
|
pry-doc (0.13.4)
|
|
41
53
|
pry (~> 0.11)
|
|
42
54
|
yard (~> 0.9.11)
|
|
55
|
+
public_suffix (4.0.5)
|
|
43
56
|
rake (10.5.0)
|
|
44
57
|
rspec (3.8.0)
|
|
45
58
|
rspec-core (~> 3.8.0)
|
|
@@ -59,18 +72,21 @@ GEM
|
|
|
59
72
|
terminal-table (1.8.0)
|
|
60
73
|
unicode-display_width (~> 1.1, >= 1.1.1)
|
|
61
74
|
thor (0.20.3)
|
|
62
|
-
tty-color (0.
|
|
63
|
-
tty-cursor (0.
|
|
75
|
+
tty-color (0.5.1)
|
|
76
|
+
tty-cursor (0.7.1)
|
|
64
77
|
tty-spinner (0.8.0)
|
|
65
78
|
tty-cursor (>= 0.5.0)
|
|
66
|
-
unicode-display_width (1.
|
|
67
|
-
|
|
79
|
+
unicode-display_width (1.7.0)
|
|
80
|
+
websocket-driver (0.7.3)
|
|
81
|
+
websocket-extensions (>= 0.1.0)
|
|
82
|
+
websocket-extensions (0.1.5)
|
|
83
|
+
yard (0.9.24)
|
|
68
84
|
|
|
69
85
|
PLATFORMS
|
|
70
86
|
ruby
|
|
71
87
|
|
|
72
88
|
DEPENDENCIES
|
|
73
|
-
bundler (~> 1.
|
|
89
|
+
bundler (~> 2.1.2)
|
|
74
90
|
jenkins-builder!
|
|
75
91
|
pry (~> 0.11.3)
|
|
76
92
|
pry-byebug (~> 3.6.0)
|
|
@@ -79,4 +95,4 @@ DEPENDENCIES
|
|
|
79
95
|
rspec (~> 3.0)
|
|
80
96
|
|
|
81
97
|
BUNDLED WITH
|
|
82
|
-
1.
|
|
98
|
+
2.1.2
|
data/exe/jk
CHANGED
data/jenkins-builder.gemspec
CHANGED
|
@@ -35,8 +35,9 @@ Gem::Specification.new do |spec|
|
|
|
35
35
|
spec.add_dependency 'security', '~> 0.1.3'
|
|
36
36
|
spec.add_dependency 'pastel', '~> 0.7.2'
|
|
37
37
|
spec.add_dependency 'tty-spinner', '~> 0.8.0'
|
|
38
|
+
spec.add_dependency 'ferrum', '~> 0.9'
|
|
38
39
|
|
|
39
|
-
spec.add_development_dependency "bundler", "~> 1.
|
|
40
|
+
spec.add_development_dependency "bundler", "~> 2.1.2"
|
|
40
41
|
spec.add_development_dependency "rake", "~> 10.0"
|
|
41
42
|
spec.add_development_dependency "rspec", "~> 3.0"
|
|
42
43
|
spec.add_development_dependency "pry", "~> 0.11.3"
|
data/lib/jenkins/builder/app.rb
CHANGED
|
@@ -1,52 +1,56 @@
|
|
|
1
1
|
require 'jenkins/builder/cli'
|
|
2
2
|
require 'jenkins/builder/config'
|
|
3
|
-
require 'jenkins/builder/secret'
|
|
4
3
|
require 'jenkins_api_client'
|
|
5
4
|
require 'pastel'
|
|
6
5
|
require 'tty-spinner'
|
|
7
6
|
require 'time'
|
|
7
|
+
require 'cgi'
|
|
8
|
+
require 'ferrum'
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
|
|
11
|
+
module JenkinsApi
|
|
12
|
+
module UriHelper
|
|
13
|
+
# Encode a string for using in the query part of an URL
|
|
14
|
+
#
|
|
15
|
+
def form_encode(string)
|
|
16
|
+
URI.encode_www_form_component string.encode(Encoding::UTF_8)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# Encode a string for use in the hiearchical part of an URL
|
|
20
|
+
#
|
|
21
|
+
def path_encode(path)
|
|
22
|
+
CGI.escape(path.encode(Encoding::UTF_8))
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
10
26
|
|
|
11
27
|
module Jenkins
|
|
12
28
|
module Builder
|
|
13
29
|
class App
|
|
14
30
|
|
|
15
|
-
attr_accessor :config, :
|
|
31
|
+
attr_accessor :config, :client, :options
|
|
16
32
|
|
|
17
|
-
def initialize(options={})
|
|
33
|
+
def initialize(service, options={})
|
|
18
34
|
@options = options
|
|
19
|
-
@
|
|
20
|
-
@
|
|
35
|
+
@service = service
|
|
36
|
+
@config = Jenkins::Builder::Config.new(@service)
|
|
21
37
|
|
|
22
|
-
if @config.url && @config.username && @
|
|
38
|
+
if @config.url && @config.username && @config.password
|
|
23
39
|
@client = JenkinsApi::Client.new(server_url: @config.url,
|
|
24
40
|
username: @config.username,
|
|
25
|
-
password: @
|
|
41
|
+
password: @config.password)
|
|
26
42
|
end
|
|
27
43
|
end
|
|
28
44
|
|
|
29
|
-
def main(args)
|
|
30
|
-
# validate_os!
|
|
31
|
-
validate_fzf!
|
|
32
|
-
Jenkins::Builder::CLI.create_alias_commands(@config.aliases || [])
|
|
33
|
-
Jenkins::Builder::CLI.start(args)
|
|
34
|
-
rescue => e
|
|
35
|
-
STDERR.puts(e.message)
|
|
36
|
-
end
|
|
37
|
-
|
|
38
45
|
def setup(options)
|
|
39
46
|
validate_credentials!(options)
|
|
40
47
|
|
|
41
48
|
config.url = options[:url]
|
|
42
49
|
config.username = options[:username]
|
|
43
50
|
config.branches = options[:branches]
|
|
51
|
+
config.password = options[:password]
|
|
44
52
|
config.save!
|
|
45
53
|
|
|
46
|
-
secret.username = options[:username]
|
|
47
|
-
secret.password = options[:password]
|
|
48
|
-
secret.save!
|
|
49
|
-
|
|
50
54
|
puts 'Credentials setup successfully.'
|
|
51
55
|
end
|
|
52
56
|
|
|
@@ -56,7 +60,7 @@ module Jenkins
|
|
|
56
60
|
Username: #{@config.username}
|
|
57
61
|
INFO
|
|
58
62
|
|
|
59
|
-
puts "Password: #{@
|
|
63
|
+
puts "Password: #{@config.password}" if options[:password]
|
|
60
64
|
end
|
|
61
65
|
|
|
62
66
|
def create_alias(name, command)
|
|
@@ -82,9 +86,19 @@ module Jenkins
|
|
|
82
86
|
|
|
83
87
|
def build_each(jobs)
|
|
84
88
|
if @options[:failfast]
|
|
85
|
-
jobs.find { |job| build(job).nil? }
|
|
89
|
+
failed_job = jobs.find { |job| build(job).nil? }
|
|
90
|
+
if failed_job
|
|
91
|
+
exit 1
|
|
92
|
+
else
|
|
93
|
+
exit 0
|
|
94
|
+
end
|
|
86
95
|
else
|
|
87
|
-
jobs.
|
|
96
|
+
results = jobs.map { |job| build(job) }
|
|
97
|
+
if results.any? { |r| r.nil? }
|
|
98
|
+
exit 1
|
|
99
|
+
else
|
|
100
|
+
exit 0
|
|
101
|
+
end
|
|
88
102
|
end
|
|
89
103
|
end
|
|
90
104
|
|
|
@@ -97,11 +111,11 @@ module Jenkins
|
|
|
97
111
|
|
|
98
112
|
def fetch_all_jobs
|
|
99
113
|
refresh_jobs_cache unless validate_jobs_cache
|
|
100
|
-
@config['jobs-cache']['jobs']
|
|
114
|
+
@config['services'][@service]['jobs-cache']['jobs']
|
|
101
115
|
end
|
|
102
116
|
|
|
103
117
|
def refresh_jobs_cache
|
|
104
|
-
@config['jobs-cache'] = {
|
|
118
|
+
@config['services'][@service]['jobs-cache'] = {
|
|
105
119
|
'expire' => (Time.now + 86400*30).strftime('%F %T'),
|
|
106
120
|
'jobs' => all_jobs
|
|
107
121
|
}
|
|
@@ -109,8 +123,8 @@ module Jenkins
|
|
|
109
123
|
end
|
|
110
124
|
|
|
111
125
|
def validate_jobs_cache
|
|
112
|
-
@config['jobs-cache'] && !@config['jobs-cache'].empty? && \
|
|
113
|
-
Time.parse(@config['jobs-cache']['expire']) > Time.now
|
|
126
|
+
@config['services'][@service]['jobs-cache'] && !@config['services'][@service]['jobs-cache'].empty? && \
|
|
127
|
+
Time.parse(@config['services'][@service]['jobs-cache']['expire']) > Time.now
|
|
114
128
|
end
|
|
115
129
|
|
|
116
130
|
def all_jobs
|
|
@@ -134,14 +148,42 @@ module Jenkins
|
|
|
134
148
|
msg = "#{job_name} with branch #{branch}"
|
|
135
149
|
mbranch_param = {name: 'mbranch', value: branch}
|
|
136
150
|
params = mbranch_param.merge(json: {parameter: mbranch_param}.to_json)
|
|
137
|
-
|
|
151
|
+
begin
|
|
152
|
+
@client.api_post_request("/job/#{job_name}/build?delay=0sec", params, true)
|
|
153
|
+
rescue JenkinsApi::Exceptions::ForbiddenWithCrumb => e
|
|
154
|
+
start_build_use_ferrum(job_name, branch)
|
|
155
|
+
end
|
|
138
156
|
else
|
|
139
157
|
msg = job_name
|
|
140
|
-
|
|
158
|
+
begin
|
|
159
|
+
@client.api_post_request("/job/#{job_name}/build?delay=0sec")
|
|
160
|
+
rescue JenkinsApi::Exceptions::ForbiddenWithCrumb => e
|
|
161
|
+
start_build_use_ferrum(job_name, nil)
|
|
162
|
+
end
|
|
141
163
|
end
|
|
142
164
|
puts Pastel.new.cyan.bold("\n%s%s %s %s%s\n" % [' '*30, '★ '*5, msg, '★ '*5, ' '*30])
|
|
143
165
|
end
|
|
144
166
|
|
|
167
|
+
def start_build_use_ferrum(job_name, branch)
|
|
168
|
+
browser = Ferrum::Browser.new(headless: false)
|
|
169
|
+
browser.goto("#{config.url}/login")
|
|
170
|
+
username_input = browser.at_css('input[name=j_username]')
|
|
171
|
+
password_input = browser.at_css('input[name=j_password]')
|
|
172
|
+
username_input.focus.type(config.username)
|
|
173
|
+
password_input.focus.type(config.password)
|
|
174
|
+
browser.at_css('input[name=Submit]').click
|
|
175
|
+
if branch
|
|
176
|
+
browser.goto("#{config.url}/job/#{job_name}/build?delay=0sec")
|
|
177
|
+
sleep(2)
|
|
178
|
+
browser.evaluate("document.querySelector('#gitParameterSelect').value = '#{branch}'")
|
|
179
|
+
browser.at_css('#yui-gen1-button').click
|
|
180
|
+
else
|
|
181
|
+
browser.goto("#{config.url}/job/#{job_name}/")
|
|
182
|
+
browser.at_xpath('#tasks a.task-link').click
|
|
183
|
+
end
|
|
184
|
+
browser.quit
|
|
185
|
+
end
|
|
186
|
+
|
|
145
187
|
def check_and_show_result(job_name, latest_build_no)
|
|
146
188
|
while (build_no = @client.job.get_current_build_number(job_name)) <= latest_build_no
|
|
147
189
|
sleep 1
|
|
@@ -155,7 +197,6 @@ module Jenkins
|
|
|
155
197
|
all_console_output = ''
|
|
156
198
|
|
|
157
199
|
loop do
|
|
158
|
-
# require 'pry'; binding.pry;
|
|
159
200
|
console_output = @client.job.get_console_output(job_name, build_no, 0, 'text')
|
|
160
201
|
all_console_output = console_output['output']
|
|
161
202
|
print console_output['output'][printed_size..-1] unless @options[:silent]
|
|
@@ -195,16 +236,6 @@ module Jenkins
|
|
|
195
236
|
|
|
196
237
|
private
|
|
197
238
|
|
|
198
|
-
def validate_os!
|
|
199
|
-
raise 'Darwin is the only supported OS now.' unless `uname`.chomp == 'Darwin'
|
|
200
|
-
end
|
|
201
|
-
|
|
202
|
-
def validate_fzf!
|
|
203
|
-
`fzf --version`
|
|
204
|
-
rescue Errno::ENOENT
|
|
205
|
-
raise 'Required command fzf is not installed.'
|
|
206
|
-
end
|
|
207
|
-
|
|
208
239
|
def validate_credentials!(options)
|
|
209
240
|
@client = JenkinsApi::Client.new(server_url: options[:url],
|
|
210
241
|
username: options[:username],
|
data/lib/jenkins/builder/cli.rb
CHANGED
|
@@ -7,6 +7,12 @@ module Jenkins
|
|
|
7
7
|
class CLI < ::Thor
|
|
8
8
|
|
|
9
9
|
class << self
|
|
10
|
+
def main(args)
|
|
11
|
+
validate_fzf!
|
|
12
|
+
@config = Jenkins::Builder::Config.new
|
|
13
|
+
create_alias_commands(@config.aliases || [])
|
|
14
|
+
start(args)
|
|
15
|
+
end
|
|
10
16
|
def create_alias_commands(aliases)
|
|
11
17
|
aliases.each do |name, command|
|
|
12
18
|
desc "#{name}", "Alias for: `#{command}'"
|
|
@@ -15,8 +21,17 @@ module Jenkins
|
|
|
15
21
|
end
|
|
16
22
|
end
|
|
17
23
|
end
|
|
24
|
+
|
|
25
|
+
def validate_fzf!
|
|
26
|
+
`fzf --version`
|
|
27
|
+
rescue Errno::ENOENT
|
|
28
|
+
raise 'Required command fzf is not installed.'
|
|
29
|
+
end
|
|
30
|
+
|
|
18
31
|
end
|
|
19
32
|
|
|
33
|
+
class_option :service, type: :string, aliases: ['-s'], desc: 'Specify service name'
|
|
34
|
+
|
|
20
35
|
desc 'setup [-e]', 'Setup URL, username and password, or open config file in an editor when -e specified.'
|
|
21
36
|
option :edit, type: :boolean, aliases: ['-e'], desc: 'open config file in an editor'
|
|
22
37
|
def setup
|
|
@@ -39,8 +54,8 @@ module Jenkins
|
|
|
39
54
|
Jenkins::Builder::App.new.print_info(options)
|
|
40
55
|
end
|
|
41
56
|
|
|
42
|
-
desc 'build [-
|
|
43
|
-
option :
|
|
57
|
+
desc 'build [-q] [-f] <JOB_IDENTIFIERS>', 'Build jobs'
|
|
58
|
+
option :quiet, type: :boolean, aliases: ['-q'], desc: 'suppress console output.'
|
|
44
59
|
option :failfast, type: :boolean, aliases: ['-f'], desc: 'stop immediately when building fails.'
|
|
45
60
|
option :version, type: :boolean, aliases: ['-v'], desc: 'Show version.'
|
|
46
61
|
def build(*jobs)
|
|
@@ -48,7 +63,13 @@ module Jenkins
|
|
|
48
63
|
puts Jenkins::Builder::VERSION
|
|
49
64
|
exit
|
|
50
65
|
end
|
|
51
|
-
|
|
66
|
+
if options.service.nil?
|
|
67
|
+
service = fzf(Config.new().services).first
|
|
68
|
+
exit if service.nil?
|
|
69
|
+
else
|
|
70
|
+
service = options.service
|
|
71
|
+
end
|
|
72
|
+
app = Jenkins::Builder::App.new(service, options)
|
|
52
73
|
if jobs.empty?
|
|
53
74
|
jobs = fzf(app.fetch_all_jobs)
|
|
54
75
|
exit if jobs.empty?
|
|
@@ -4,10 +4,11 @@ module Jenkins
|
|
|
4
4
|
module Builder
|
|
5
5
|
class Config
|
|
6
6
|
|
|
7
|
-
attr_accessor :file, :config
|
|
7
|
+
attr_accessor :file, :config, :service
|
|
8
8
|
|
|
9
|
-
def initialize
|
|
9
|
+
def initialize(service = nil)
|
|
10
10
|
|
|
11
|
+
@service = service
|
|
11
12
|
@file = File.expand_path('~/.jenkins-builder.yaml')
|
|
12
13
|
|
|
13
14
|
if File.exist?(@file)
|
|
@@ -25,20 +26,24 @@ module Jenkins
|
|
|
25
26
|
@config[k] = v
|
|
26
27
|
end
|
|
27
28
|
|
|
29
|
+
def services
|
|
30
|
+
@config['services'].keys
|
|
31
|
+
end
|
|
32
|
+
|
|
28
33
|
def username
|
|
29
|
-
@config['username']
|
|
34
|
+
@config['services'][@service]['username']
|
|
30
35
|
end
|
|
31
36
|
|
|
32
37
|
def username=(name)
|
|
33
|
-
@config['username'] = name
|
|
38
|
+
@config['services'][@service]['username'] = name
|
|
34
39
|
end
|
|
35
40
|
|
|
36
41
|
def password
|
|
37
|
-
@config['password']
|
|
42
|
+
@config['services'][@service]['password']
|
|
38
43
|
end
|
|
39
44
|
|
|
40
45
|
def password=(passwd)
|
|
41
|
-
@config['password'] = passwd
|
|
46
|
+
@config['services'][@service]['password'] = passwd
|
|
42
47
|
end
|
|
43
48
|
|
|
44
49
|
def aliases
|
|
@@ -50,11 +55,11 @@ module Jenkins
|
|
|
50
55
|
end
|
|
51
56
|
|
|
52
57
|
def url
|
|
53
|
-
@config['url']
|
|
58
|
+
@config['services'][@service]['url']
|
|
54
59
|
end
|
|
55
60
|
|
|
56
61
|
def url=(url)
|
|
57
|
-
@config['url'] = url
|
|
62
|
+
@config['services'][@service]['url'] = url
|
|
58
63
|
end
|
|
59
64
|
|
|
60
65
|
def branches
|
|
@@ -66,7 +71,7 @@ module Jenkins
|
|
|
66
71
|
end
|
|
67
72
|
|
|
68
73
|
def hooks_of(job)
|
|
69
|
-
hooks = @config['hooks'] && @config['hooks'][job]
|
|
74
|
+
hooks = @config['services'][@service]['hooks'] && @config['services'][@service]['hooks'][job]
|
|
70
75
|
hooks = [hooks] if hooks.is_a?(String)
|
|
71
76
|
hooks
|
|
72
77
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: jenkins-builder
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Liu Xiang
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2020-07-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: thor
|
|
@@ -80,20 +80,34 @@ dependencies:
|
|
|
80
80
|
- - "~>"
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
82
|
version: 0.8.0
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: ferrum
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - "~>"
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: '0.9'
|
|
90
|
+
type: :runtime
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - "~>"
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: '0.9'
|
|
83
97
|
- !ruby/object:Gem::Dependency
|
|
84
98
|
name: bundler
|
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
|
86
100
|
requirements:
|
|
87
101
|
- - "~>"
|
|
88
102
|
- !ruby/object:Gem::Version
|
|
89
|
-
version:
|
|
103
|
+
version: 2.1.2
|
|
90
104
|
type: :development
|
|
91
105
|
prerelease: false
|
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
107
|
requirements:
|
|
94
108
|
- - "~>"
|
|
95
109
|
- !ruby/object:Gem::Version
|
|
96
|
-
version:
|
|
110
|
+
version: 2.1.2
|
|
97
111
|
- !ruby/object:Gem::Dependency
|
|
98
112
|
name: rake
|
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -196,7 +210,7 @@ licenses:
|
|
|
196
210
|
- MIT
|
|
197
211
|
metadata:
|
|
198
212
|
allowed_push_host: https://rubygems.org
|
|
199
|
-
post_install_message:
|
|
213
|
+
post_install_message:
|
|
200
214
|
rdoc_options: []
|
|
201
215
|
require_paths:
|
|
202
216
|
- lib
|
|
@@ -211,8 +225,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
211
225
|
- !ruby/object:Gem::Version
|
|
212
226
|
version: '0'
|
|
213
227
|
requirements: []
|
|
214
|
-
rubygems_version: 3.
|
|
215
|
-
signing_key:
|
|
228
|
+
rubygems_version: 3.1.2
|
|
229
|
+
signing_key:
|
|
216
230
|
specification_version: 4
|
|
217
231
|
summary: Build Jenkins Jobs
|
|
218
232
|
test_files: []
|