jenkins_pipeline_builder 0.1.2 → 0.1.3
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/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +4 -0
- data/Rakefile +68 -0
- data/bin/generate +28 -0
- data/config/login.yml +24 -0
- data/jenkins_pipeline_builder.gemspec +42 -0
- data/lib/jenksin_pipeline_builder.rb +39 -0
- data/lib/jenksin_pipeline_builder/builders.rb +72 -0
- data/lib/jenksin_pipeline_builder/cli/base.rb +69 -0
- data/lib/jenksin_pipeline_builder/cli/helper.rb +68 -0
- data/lib/jenksin_pipeline_builder/cli/pipeline.rb +40 -0
- data/lib/jenksin_pipeline_builder/cli/view.rb +40 -0
- data/lib/jenksin_pipeline_builder/compiler.rb +81 -0
- data/lib/jenksin_pipeline_builder/generator.rb +346 -0
- data/lib/jenksin_pipeline_builder/job_builder.rb +82 -0
- data/lib/jenksin_pipeline_builder/module_registry.rb +82 -0
- data/lib/jenksin_pipeline_builder/publishers.rb +113 -0
- data/lib/jenksin_pipeline_builder/triggers.rb +38 -0
- data/lib/jenksin_pipeline_builder/utils.rb +46 -0
- data/lib/jenksin_pipeline_builder/version.rb +25 -0
- data/lib/jenksin_pipeline_builder/view.rb +259 -0
- data/lib/jenksin_pipeline_builder/wrappers.rb +91 -0
- data/lib/jenksin_pipeline_builder/xml_helper.rb +40 -0
- data/spec/func_tests/spec_helper.rb +18 -0
- data/spec/func_tests/view_spec.rb +93 -0
- data/spec/unit_tests/compiler_spec.rb +19 -0
- data/spec/unit_tests/fixtures/files/Job-Build-Flow.xml +57 -0
- data/spec/unit_tests/fixtures/files/Job-Build-Flow.yaml +22 -0
- data/spec/unit_tests/fixtures/files/Job-Build-Maven.xml +90 -0
- data/spec/unit_tests/fixtures/files/Job-Build-Maven.yaml +26 -0
- data/spec/unit_tests/fixtures/files/Job-DSL.yaml +14 -0
- data/spec/unit_tests/fixtures/files/Job-DSL1.xml +27 -0
- data/spec/unit_tests/fixtures/files/Job-DSL2.xml +25 -0
- data/spec/unit_tests/fixtures/files/Job-Gem-Build.xml +142 -0
- data/spec/unit_tests/fixtures/files/Job-Gem-Build.yaml +41 -0
- data/spec/unit_tests/fixtures/files/Job-Generate-From-Template.xml +32 -0
- data/spec/unit_tests/fixtures/files/Job-Generate-From-Template.yaml +8 -0
- data/spec/unit_tests/fixtures/files/Job-Multi-Project.xml +117 -0
- data/spec/unit_tests/fixtures/files/Job-Multi-Project.yaml +36 -0
- data/spec/unit_tests/fixtures/files/project.yaml +15 -0
- data/spec/unit_tests/generator_spec.rb +67 -0
- data/spec/unit_tests/module_registry_spec.rb +19 -0
- data/spec/unit_tests/resolve_dependencies_spec.rb +230 -0
- data/spec/unit_tests/spec_helper.rb +29 -0
- metadata +75 -6
@@ -0,0 +1,15 @@
|
|
1
|
+
- defaults:
|
2
|
+
name: global
|
3
|
+
description: 'Do not edit this job through the web!'
|
4
|
+
hipchat_room: HipChat Room Name
|
5
|
+
os_username: admin
|
6
|
+
os_priv_key: /home/user/qa-oskey.priv
|
7
|
+
os_password: some_encrypted_password
|
8
|
+
|
9
|
+
- project:
|
10
|
+
name: Generate
|
11
|
+
jobs:
|
12
|
+
- Job-{{name}}-From-Template:
|
13
|
+
command: run.sh
|
14
|
+
- Job-DSL1
|
15
|
+
- Job-DSL2
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require File.expand_path('../spec_helper', __FILE__)
|
2
|
+
require 'equivalent-xml'
|
3
|
+
|
4
|
+
describe 'Test YAML jobs conversion to XML' do
|
5
|
+
context 'Loading YAML files' do
|
6
|
+
before do
|
7
|
+
@client = JenkinsApi::Client.new(
|
8
|
+
:server_ip => '127.0.0.1',
|
9
|
+
:server_port => 8080,
|
10
|
+
:username => 'username',
|
11
|
+
:password => 'password',
|
12
|
+
:log_location => '/dev/null'
|
13
|
+
)
|
14
|
+
@generator = JenkinsPipelineBuilder::Generator.new(nil, @client)
|
15
|
+
@generator.debug = true
|
16
|
+
@generator.no_files = true
|
17
|
+
end
|
18
|
+
|
19
|
+
def compare_jobs(job, path)
|
20
|
+
xml = @generator.compile_job_to_xml(job)
|
21
|
+
doc1 = Nokogiri::XML(xml)
|
22
|
+
|
23
|
+
sample_job_xml = File.read(path + '.xml')
|
24
|
+
|
25
|
+
doc2 = Nokogiri::XML(sample_job_xml)
|
26
|
+
|
27
|
+
doc1.should be_equivalent_to(doc2)
|
28
|
+
end
|
29
|
+
|
30
|
+
[
|
31
|
+
'Job-Multi-Project',
|
32
|
+
'Job-Build-Maven',
|
33
|
+
'Job-Build-Flow',
|
34
|
+
'Job-Gem-Build'
|
35
|
+
].each do |file|
|
36
|
+
it "should create expected XML from YAML '#{file}'" do
|
37
|
+
path = File.expand_path('../fixtures/files/' + file, __FILE__)
|
38
|
+
|
39
|
+
@generator.load_collection_from_path path + '.yaml'
|
40
|
+
job_name = @generator.job_collection.keys.first
|
41
|
+
job = @generator.resolve_job_by_name(job_name)
|
42
|
+
|
43
|
+
compare_jobs job, path
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should create expected XML from YAML collection" do
|
48
|
+
path = File.expand_path('../fixtures/files/', __FILE__)
|
49
|
+
|
50
|
+
@generator.load_collection_from_path(path)
|
51
|
+
|
52
|
+
project_name = @generator.projects.first[:name]
|
53
|
+
|
54
|
+
project = @generator.resolve_project(@generator.get_item(project_name))
|
55
|
+
|
56
|
+
project[:value][:jobs].should_not be_nil
|
57
|
+
|
58
|
+
project[:value][:jobs].each do |i|
|
59
|
+
job = i[:result]
|
60
|
+
job.should_not be_nil
|
61
|
+
|
62
|
+
file_name = File.join(path, job[:name])
|
63
|
+
compare_jobs job, file_name
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require File.expand_path('../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe 'ModuleRegistry' do
|
4
|
+
|
5
|
+
it 'should return item by a specified path' do
|
6
|
+
|
7
|
+
registry = JenkinsPipelineBuilder::ModuleRegistry.new ({
|
8
|
+
zz: {
|
9
|
+
aa: 'aa',
|
10
|
+
bb: 'bb',
|
11
|
+
cc: {
|
12
|
+
dd: 'dd'
|
13
|
+
}
|
14
|
+
}
|
15
|
+
})
|
16
|
+
|
17
|
+
registry.get('zz/aa').should be == 'aa'
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,230 @@
|
|
1
|
+
require File.expand_path('../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe 'Templates resolver' do
|
4
|
+
before(:each) do
|
5
|
+
@client = JenkinsApi::Client.new(
|
6
|
+
:server_ip => '127.0.0.1',
|
7
|
+
:server_port => 8080,
|
8
|
+
:username => 'username',
|
9
|
+
:password => 'password',
|
10
|
+
:log_location => '/dev/null'
|
11
|
+
)
|
12
|
+
@generator = JenkinsPipelineBuilder::Generator.new(nil, @client)
|
13
|
+
@generator.debug = true
|
14
|
+
@generator.no_files = true
|
15
|
+
end
|
16
|
+
|
17
|
+
describe 'resolving settings bags' do
|
18
|
+
it 'gives a bag when all the variables can be resolved' do
|
19
|
+
str = %{
|
20
|
+
- project:
|
21
|
+
name: project-name
|
22
|
+
db: my_own_db_{{else}}
|
23
|
+
}
|
24
|
+
project = YAML.load(str)
|
25
|
+
@generator.load_job_collection project
|
26
|
+
|
27
|
+
#@generator.resolve_item('project-name')
|
28
|
+
settings = JenkinsPipelineBuilder::Compiler.get_settings_bag(@generator.get_item('project-name'), { db: 'blah', else: "bum" })
|
29
|
+
settings.should == { name: "project-name", db: "my_own_db_bum", else: "bum", }
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'returns nil when all the variables cant be resolved' do
|
33
|
+
str = %{
|
34
|
+
- project:
|
35
|
+
name: project-name
|
36
|
+
db: my_own_db_{{else}}_{{blah}}
|
37
|
+
}
|
38
|
+
project = YAML.load(str)
|
39
|
+
@generator.load_job_collection project
|
40
|
+
|
41
|
+
#@generator.resolve_item('project-name')
|
42
|
+
settings = JenkinsPipelineBuilder::Compiler.get_settings_bag(@generator.get_item('project-name'), { db: 'blah', else: "bum" })
|
43
|
+
settings.should be_nil
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'starts with the defaults section for settings bag' do
|
48
|
+
str = %{
|
49
|
+
- defaults:
|
50
|
+
name: global
|
51
|
+
description: 'Do not edit this job through the web!'
|
52
|
+
- job-template:
|
53
|
+
name: 'foo-bar'
|
54
|
+
description: '{{description}}'
|
55
|
+
builders:
|
56
|
+
- shell: perftest
|
57
|
+
- project:
|
58
|
+
name: project-name
|
59
|
+
db: my_own_db
|
60
|
+
jobs:
|
61
|
+
- 'foo-bar'
|
62
|
+
}
|
63
|
+
project = YAML.load(str)
|
64
|
+
@generator.load_job_collection project
|
65
|
+
|
66
|
+
@generator.resolve_project(@generator.get_item('project-name')).should ==
|
67
|
+
{:name=>"project-name",
|
68
|
+
:type=>:project,
|
69
|
+
:value=>
|
70
|
+
{:name=>"project-name",
|
71
|
+
:db=>"my_own_db",
|
72
|
+
:jobs=>
|
73
|
+
[{:"foo-bar"=>{},
|
74
|
+
:result=>
|
75
|
+
{:name=>"foo-bar",
|
76
|
+
:description=>"Do not edit this job through the web!",
|
77
|
+
:builders=>[{:shell=>"perftest"}]}}]},
|
78
|
+
:settings=>
|
79
|
+
{:name=>"project-name",
|
80
|
+
:description=>"Do not edit this job through the web!",
|
81
|
+
:db=>"my_own_db"}}
|
82
|
+
end
|
83
|
+
|
84
|
+
it 'should build project collection from jobs templates' do
|
85
|
+
str = %{
|
86
|
+
- job-template:
|
87
|
+
name: '{{name}}-unit-tests'
|
88
|
+
builders:
|
89
|
+
- shell: unittest
|
90
|
+
publishers:
|
91
|
+
- email:
|
92
|
+
recipients: '{{mail-to}}'
|
93
|
+
|
94
|
+
- job-template:
|
95
|
+
name: '{{name}}-perf-tests'
|
96
|
+
builders:
|
97
|
+
- shell: perftest
|
98
|
+
publishers:
|
99
|
+
- email:
|
100
|
+
recipients: '{{mail-to}}'
|
101
|
+
|
102
|
+
- project:
|
103
|
+
name: project-name
|
104
|
+
db: my_own_db
|
105
|
+
jobs:
|
106
|
+
- '{{name}}-unit-tests':
|
107
|
+
mail-to: developer@nowhere.net
|
108
|
+
- '{{name}}-perf-tests':
|
109
|
+
mail-to: projmanager@nowhere.net
|
110
|
+
}
|
111
|
+
|
112
|
+
project = YAML.load(str)
|
113
|
+
@generator.load_job_collection project
|
114
|
+
|
115
|
+
@generator.resolve_project(@generator.get_item('project-name')).should ==
|
116
|
+
{:name=>"project-name",
|
117
|
+
:type=>:project,
|
118
|
+
:value=>
|
119
|
+
{:name=>"project-name",
|
120
|
+
:db=>"my_own_db",
|
121
|
+
:jobs=>
|
122
|
+
[{:"{{name}}-unit-tests"=>{:"mail-to"=>"developer@nowhere.net"},
|
123
|
+
:result=>
|
124
|
+
{:name=>"project-name-unit-tests",
|
125
|
+
:builders=>[{:shell=>"unittest"}],
|
126
|
+
:publishers=>[{:email=>{:recipients=>"developer@nowhere.net"}}]}},
|
127
|
+
{:"{{name}}-perf-tests"=>{:"mail-to"=>"projmanager@nowhere.net"},
|
128
|
+
:result=>
|
129
|
+
{:name=>"project-name-perf-tests",
|
130
|
+
:builders=>[{:shell=>"perftest"}],
|
131
|
+
:publishers=>[{:email=>{:recipients=>"projmanager@nowhere.net"}}]}}]},
|
132
|
+
:settings=>{:name=>"project-name", :db=>"my_own_db"}}
|
133
|
+
end
|
134
|
+
|
135
|
+
it 'should build project collection from jobs and jobs templates' do
|
136
|
+
str = %{
|
137
|
+
- job-template:
|
138
|
+
name: '{{name}}-unit-tests'
|
139
|
+
builders:
|
140
|
+
- shell: unittest
|
141
|
+
publishers:
|
142
|
+
- email:
|
143
|
+
recipients: '{{mail-to}}'
|
144
|
+
|
145
|
+
- job:
|
146
|
+
name: 'foo-bar'
|
147
|
+
builders:
|
148
|
+
- shell: perftest
|
149
|
+
|
150
|
+
- project:
|
151
|
+
name: project-name
|
152
|
+
db: my_own_db
|
153
|
+
jobs:
|
154
|
+
- 'foo-bar'
|
155
|
+
- '{{name}}-unit-tests':
|
156
|
+
mail-to: projmanager@nowhere.net
|
157
|
+
}
|
158
|
+
|
159
|
+
project = YAML.load(str)
|
160
|
+
@generator.load_job_collection project
|
161
|
+
|
162
|
+
@generator.resolve_project(@generator.get_item('project-name')).should ==
|
163
|
+
{:name=>"project-name",
|
164
|
+
:type=>:project,
|
165
|
+
:value=>
|
166
|
+
{:name=>"project-name",
|
167
|
+
:db=>"my_own_db",
|
168
|
+
:jobs=>
|
169
|
+
[{:"foo-bar"=>{},
|
170
|
+
:result=>
|
171
|
+
{:name=>"foo-bar",
|
172
|
+
:builders=>[{:shell=>"perftest"}]}},
|
173
|
+
{:"{{name}}-unit-tests"=>{:"mail-to"=>"projmanager@nowhere.net"},
|
174
|
+
:result=>
|
175
|
+
{:name=>"project-name-unit-tests",
|
176
|
+
:builders=>[{:shell=>"unittest"}],
|
177
|
+
:publishers=>[{:email=>{:recipients=>"projmanager@nowhere.net"}}]}}]},
|
178
|
+
:settings=>{:name=>"project-name", :db=>"my_own_db"}}
|
179
|
+
end
|
180
|
+
|
181
|
+
|
182
|
+
describe 'compilation of templates' do
|
183
|
+
it 'compiles String' do
|
184
|
+
JenkinsPipelineBuilder::Compiler.compile('blah', { item1: 'data1'}).should == 'blah'
|
185
|
+
end
|
186
|
+
|
187
|
+
it 'compiles simple Hash' do
|
188
|
+
JenkinsPipelineBuilder::Compiler.compile({ name: 'item-{{item1}}', value: 'item1-data'}, { item1: 'data1'}).should ==
|
189
|
+
{ name: 'item-data1', value: 'item1-data'}
|
190
|
+
end
|
191
|
+
|
192
|
+
it 'compiles nested Hash' do
|
193
|
+
JenkinsPipelineBuilder::Compiler.compile({ name: 'item-{{item1}}', value: { house: 'house-{{item1}}'}}, { item1: 'data1'}).should ==
|
194
|
+
{ name: 'item-data1', value: { house: 'house-data1'}}
|
195
|
+
end
|
196
|
+
|
197
|
+
it 'compiles complex Hash' do
|
198
|
+
template = {:name=>"{{name}}-unit-tests",
|
199
|
+
:builders=>[{:shell=>"unittest"}],
|
200
|
+
:publishers=>[{:email=>{:recipients=>"{{mail-to}}"}}]}
|
201
|
+
settings = {:name=>"project-name", :db=>"my_own_db", :'mail-to' => 'developer@nowhere.net'}
|
202
|
+
|
203
|
+
JenkinsPipelineBuilder::Compiler.compile(template, settings).should ==
|
204
|
+
{:name=>"project-name-unit-tests",
|
205
|
+
:builders=>[{:shell=>"unittest"}],
|
206
|
+
:publishers=>[{:email=>{:recipients=>"developer@nowhere.net"}}]}
|
207
|
+
end
|
208
|
+
end
|
209
|
+
|
210
|
+
it 'shoult resolve job template into a job' do
|
211
|
+
file = 'project_simple'
|
212
|
+
path = File.expand_path('../fixtures/templates/' + file, __FILE__)
|
213
|
+
project = YAML.load_file(path + '.yaml')
|
214
|
+
|
215
|
+
@generator.load_job_collection project
|
216
|
+
|
217
|
+
@generator.resolve_job_by_name('{{name}}-unit-tests', { name: 'project-name', db: 'my_own_db', :'mail-to' => 'developer@nowhere.net' }).should ==
|
218
|
+
{:name=>"project-name-unit-tests",
|
219
|
+
:builders=>[{:shell=>"unittest"}],
|
220
|
+
:publishers=>[{:email=>{:recipients=>"developer@nowhere.net"}}]}
|
221
|
+
end
|
222
|
+
|
223
|
+
it 'should load from folder' do
|
224
|
+
path = File.expand_path('../fixtures/templates/', __FILE__)
|
225
|
+
@generator.load_collection_from_path(path)
|
226
|
+
|
227
|
+
@generator.job_collection.count.should == 4
|
228
|
+
@generator.projects.count == 1
|
229
|
+
end
|
230
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'logger'
|
2
|
+
require 'rspec'
|
3
|
+
|
4
|
+
require 'simplecov'
|
5
|
+
require 'simplecov-rcov'
|
6
|
+
|
7
|
+
SimpleCov.profiles.define 'spec' do
|
8
|
+
add_group 'jenksin_pipeline_builder', '/lib/'
|
9
|
+
coverage_dir 'out/coverage'
|
10
|
+
formatter SimpleCov::Formatter::MultiFormatter[
|
11
|
+
SimpleCov::Formatter::Console,
|
12
|
+
SimpleCov::Formatter::RcovFormatter,
|
13
|
+
]
|
14
|
+
end
|
15
|
+
|
16
|
+
class SimpleCov::Formatter::Console
|
17
|
+
def format(result)
|
18
|
+
print "COVERAGE: #{result.covered_percent.round(2)}%\n"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
SimpleCov.start 'spec' #if ENV["COVERAGE"]
|
23
|
+
|
24
|
+
require File.expand_path('../../../lib/jenksin_pipeline_builder', __FILE__)
|
25
|
+
|
26
|
+
RSpec.configure do |config|
|
27
|
+
config.before(:each) do
|
28
|
+
end
|
29
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jenkins_pipeline_builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Igor Moochnick
|
@@ -248,16 +248,64 @@ dependencies:
|
|
248
248
|
- - '>='
|
249
249
|
- !ruby/object:Gem::Version
|
250
250
|
version: '0'
|
251
|
-
description:
|
251
|
+
description: |-
|
252
|
+
This is a simple and easy-to-use Jenkins Pipeline generator with features focused on
|
253
|
+
automating Job & Pipeline creation from the YAML files checked-in with your application source code
|
252
254
|
email:
|
253
255
|
- igor.moochnick@gmail.com
|
254
|
-
executables:
|
256
|
+
executables:
|
257
|
+
- generate
|
255
258
|
extensions: []
|
256
259
|
extra_rdoc_files: []
|
257
260
|
files:
|
261
|
+
- .ruby-gemset
|
262
|
+
- .ruby-version
|
263
|
+
- Gemfile
|
258
264
|
- LICENSE
|
259
265
|
- README.md
|
260
|
-
|
266
|
+
- Rakefile
|
267
|
+
- bin/generate
|
268
|
+
- config/login.yml
|
269
|
+
- jenkins_pipeline_builder.gemspec
|
270
|
+
- lib/jenksin_pipeline_builder.rb
|
271
|
+
- lib/jenksin_pipeline_builder/builders.rb
|
272
|
+
- lib/jenksin_pipeline_builder/cli/base.rb
|
273
|
+
- lib/jenksin_pipeline_builder/cli/helper.rb
|
274
|
+
- lib/jenksin_pipeline_builder/cli/pipeline.rb
|
275
|
+
- lib/jenksin_pipeline_builder/cli/view.rb
|
276
|
+
- lib/jenksin_pipeline_builder/compiler.rb
|
277
|
+
- lib/jenksin_pipeline_builder/generator.rb
|
278
|
+
- lib/jenksin_pipeline_builder/job_builder.rb
|
279
|
+
- lib/jenksin_pipeline_builder/module_registry.rb
|
280
|
+
- lib/jenksin_pipeline_builder/publishers.rb
|
281
|
+
- lib/jenksin_pipeline_builder/triggers.rb
|
282
|
+
- lib/jenksin_pipeline_builder/utils.rb
|
283
|
+
- lib/jenksin_pipeline_builder/version.rb
|
284
|
+
- lib/jenksin_pipeline_builder/view.rb
|
285
|
+
- lib/jenksin_pipeline_builder/wrappers.rb
|
286
|
+
- lib/jenksin_pipeline_builder/xml_helper.rb
|
287
|
+
- spec/func_tests/spec_helper.rb
|
288
|
+
- spec/func_tests/view_spec.rb
|
289
|
+
- spec/unit_tests/compiler_spec.rb
|
290
|
+
- spec/unit_tests/fixtures/files/Job-Build-Flow.xml
|
291
|
+
- spec/unit_tests/fixtures/files/Job-Build-Flow.yaml
|
292
|
+
- spec/unit_tests/fixtures/files/Job-Build-Maven.xml
|
293
|
+
- spec/unit_tests/fixtures/files/Job-Build-Maven.yaml
|
294
|
+
- spec/unit_tests/fixtures/files/Job-DSL.yaml
|
295
|
+
- spec/unit_tests/fixtures/files/Job-DSL1.xml
|
296
|
+
- spec/unit_tests/fixtures/files/Job-DSL2.xml
|
297
|
+
- spec/unit_tests/fixtures/files/Job-Gem-Build.xml
|
298
|
+
- spec/unit_tests/fixtures/files/Job-Gem-Build.yaml
|
299
|
+
- spec/unit_tests/fixtures/files/Job-Generate-From-Template.xml
|
300
|
+
- spec/unit_tests/fixtures/files/Job-Generate-From-Template.yaml
|
301
|
+
- spec/unit_tests/fixtures/files/Job-Multi-Project.xml
|
302
|
+
- spec/unit_tests/fixtures/files/Job-Multi-Project.yaml
|
303
|
+
- spec/unit_tests/fixtures/files/project.yaml
|
304
|
+
- spec/unit_tests/generator_spec.rb
|
305
|
+
- spec/unit_tests/module_registry_spec.rb
|
306
|
+
- spec/unit_tests/resolve_dependencies_spec.rb
|
307
|
+
- spec/unit_tests/spec_helper.rb
|
308
|
+
homepage: https://github.com/IgorShare/jenkins_pipeline_builder
|
261
309
|
licenses:
|
262
310
|
- MIT
|
263
311
|
metadata: {}
|
@@ -280,6 +328,27 @@ rubyforge_project:
|
|
280
328
|
rubygems_version: 2.1.11
|
281
329
|
signing_key:
|
282
330
|
specification_version: 4
|
283
|
-
summary: This gem is
|
284
|
-
test_files:
|
331
|
+
summary: This gem is will boostrap your Jenkins pipelines
|
332
|
+
test_files:
|
333
|
+
- spec/func_tests/spec_helper.rb
|
334
|
+
- spec/func_tests/view_spec.rb
|
335
|
+
- spec/unit_tests/compiler_spec.rb
|
336
|
+
- spec/unit_tests/fixtures/files/Job-Build-Flow.xml
|
337
|
+
- spec/unit_tests/fixtures/files/Job-Build-Flow.yaml
|
338
|
+
- spec/unit_tests/fixtures/files/Job-Build-Maven.xml
|
339
|
+
- spec/unit_tests/fixtures/files/Job-Build-Maven.yaml
|
340
|
+
- spec/unit_tests/fixtures/files/Job-DSL.yaml
|
341
|
+
- spec/unit_tests/fixtures/files/Job-DSL1.xml
|
342
|
+
- spec/unit_tests/fixtures/files/Job-DSL2.xml
|
343
|
+
- spec/unit_tests/fixtures/files/Job-Gem-Build.xml
|
344
|
+
- spec/unit_tests/fixtures/files/Job-Gem-Build.yaml
|
345
|
+
- spec/unit_tests/fixtures/files/Job-Generate-From-Template.xml
|
346
|
+
- spec/unit_tests/fixtures/files/Job-Generate-From-Template.yaml
|
347
|
+
- spec/unit_tests/fixtures/files/Job-Multi-Project.xml
|
348
|
+
- spec/unit_tests/fixtures/files/Job-Multi-Project.yaml
|
349
|
+
- spec/unit_tests/fixtures/files/project.yaml
|
350
|
+
- spec/unit_tests/generator_spec.rb
|
351
|
+
- spec/unit_tests/module_registry_spec.rb
|
352
|
+
- spec/unit_tests/resolve_dependencies_spec.rb
|
353
|
+
- spec/unit_tests/spec_helper.rb
|
285
354
|
has_rdoc:
|