jenkins_pipeline_builder 0.8.5 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -0
- data/lib/jenkins_pipeline_builder/cli/helper.rb +5 -1
- data/lib/jenkins_pipeline_builder/generator.rb +13 -3
- data/lib/jenkins_pipeline_builder/version.rb +1 -1
- data/lib/jenkins_pipeline_builder/view.rb +6 -2
- data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/test_combo_files/project.json +16 -0
- data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/test_combo_files/view.yaml +5 -0
- data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/test_json_files/project.json +16 -0
- data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/test_json_files/view.json +10 -0
- data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/test_yaml_files/project.yaml +8 -0
- data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/test_yaml_files/view.yaml +5 -0
- data/spec/lib/jenkins_pipeline_builder/generator_spec.rb +23 -0
- metadata +14 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d7769c803148949697affa29d205e1a2a38fe192
|
4
|
+
data.tar.gz: 1588845d28a5bf12aff8c8bd32ab4b712e8f89e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 65281a731a94d19df901e28759725cffa2b98e7ac4119e174b663e0c30f828043ba04e30d5efe34433e3051c368d5ef9ac197db9afad73ca638e14c6692dfd5c
|
7
|
+
data.tar.gz: 7629dbc4eddf4d1e58e63eeb879dc6c7d6c4b37b63968f6c440fc600ba6eac6627d6e2bc5f27fe365577239a1d52597af53a9a50f6f4a2fa0e7fa6194de1746b
|
data/README.md
CHANGED
@@ -77,6 +77,9 @@ NOTE: you can run the pipeline in NOOP (debug-only) mode by addind -d parameter,
|
|
77
77
|
|
78
78
|
The command comes with fairly extensive help. For example you can list all of the registered extension types with `generate list` and a list of all extensions of a type with `generate list type`
|
79
79
|
|
80
|
+
#### JSON now supported
|
81
|
+
The pipeline builder now suppots json for config and pipeline files instead of or in addition to yaml files
|
82
|
+
|
80
83
|
DSL:
|
81
84
|
----
|
82
85
|
|
@@ -44,7 +44,11 @@ module JenkinsPipelineBuilder
|
|
44
44
|
(options[:password] || options[:password_base64])
|
45
45
|
creds = options
|
46
46
|
elsif options[:creds_file]
|
47
|
-
|
47
|
+
if creds_file.end_with? "json"
|
48
|
+
creds = JSON.parse(IO.read(File.expand_path(options[:creds_file])))
|
49
|
+
else
|
50
|
+
creds = YAML.load_file(File.expand_path(options[:creds_file]))
|
51
|
+
end
|
48
52
|
elsif File.exist?("#{ENV['HOME']}/.jenkins_api_client/login.yml")
|
49
53
|
creds = YAML.load_file(
|
50
54
|
File.expand_path("#{ENV['HOME']}/.jenkins_api_client/login.yml", __FILE__)
|
@@ -21,6 +21,7 @@
|
|
21
21
|
#
|
22
22
|
|
23
23
|
require 'yaml'
|
24
|
+
require 'json'
|
24
25
|
|
25
26
|
module JenkinsPipelineBuilder
|
26
27
|
class Generator
|
@@ -180,15 +181,24 @@ module JenkinsPipelineBuilder
|
|
180
181
|
path = File.expand_path(path, Dir.getwd)
|
181
182
|
if File.directory?(path)
|
182
183
|
logger.info "Generating from folder #{path}"
|
183
|
-
Dir[File.join(path, '/*.yaml
|
184
|
+
Dir[File.join(path, '/*.{yaml,yml}')].each do |file|
|
184
185
|
logger.info "Loading file #{file}"
|
185
186
|
yaml = YAML.load_file(file)
|
186
187
|
load_job_collection(yaml, remote)
|
187
188
|
end
|
189
|
+
Dir[File.join(path, '/*.json')].each do |file|
|
190
|
+
logger.info "Loading file #{file}"
|
191
|
+
json = JSON.parse(IO.read(file))
|
192
|
+
load_job_collection(json, remote)
|
193
|
+
end
|
188
194
|
else
|
189
195
|
logger.info "Loading file #{path}"
|
190
|
-
|
191
|
-
|
196
|
+
if path.end_with? "json"
|
197
|
+
hash = JSON.parse(IO.read(path))
|
198
|
+
else # elsif path.end_with?("yml") || path.end_with?("yaml")
|
199
|
+
hash = YAML.load_file(path)
|
200
|
+
end
|
201
|
+
load_job_collection(hash, remote)
|
192
202
|
end
|
193
203
|
end
|
194
204
|
|
@@ -35,9 +35,13 @@ module JenkinsPipelineBuilder
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def generate(path)
|
38
|
-
|
38
|
+
if path.end_with? "json"
|
39
|
+
hash = JSON.parse(IO.read(path))
|
40
|
+
else
|
41
|
+
hash = YAML.load_file(path)
|
42
|
+
end
|
39
43
|
|
40
|
-
|
44
|
+
hash.each do |item|
|
41
45
|
Utils.symbolize_keys_deep!(item)
|
42
46
|
create(item[:view]) if item[:view]
|
43
47
|
end
|
@@ -152,6 +152,29 @@ describe JenkinsPipelineBuilder::Generator do
|
|
152
152
|
# Fails to purge old PR jobs from Jenkins
|
153
153
|
end
|
154
154
|
|
155
|
+
describe '#load_collection_from_path' do
|
156
|
+
let(:project_hash) { [{"defaults"=>{"name"=>"global", "description"=>"Tests, all the tests"}}, {"project"=>{"name"=>"TestProject", "jobs"=>["{{name}}-part1"]}}] }
|
157
|
+
let(:view_hash) { [{"view"=>{"name"=>"{{name}} View", "type"=>"listview", "description"=>"{{description}}", "regex"=>"{{name}}.*"}}] }
|
158
|
+
it 'loads a yaml collection from a path' do
|
159
|
+
path = File.expand_path('../fixtures/generator_tests/test_yaml_files', __FILE__)
|
160
|
+
expect(@generator).to receive(:load_job_collection).once.with(view_hash, false).and_return(true)
|
161
|
+
expect(@generator).to receive(:load_job_collection).once.with(project_hash, false).and_return(true)
|
162
|
+
@generator.send(:load_collection_from_path, path)
|
163
|
+
end
|
164
|
+
it 'loads a json collection from a path' do
|
165
|
+
path = File.expand_path('../fixtures/generator_tests/test_json_files', __FILE__)
|
166
|
+
expect(@generator).to receive(:load_job_collection).once.with(view_hash, false).and_return(true)
|
167
|
+
expect(@generator).to receive(:load_job_collection).once.with(project_hash, false).and_return(true)
|
168
|
+
@generator.send(:load_collection_from_path, path)
|
169
|
+
end
|
170
|
+
it 'loads both yaml and json files from a path' do
|
171
|
+
path = File.expand_path('../fixtures/generator_tests/test_combo_files', __FILE__)
|
172
|
+
expect(@generator).to receive(:load_job_collection).once.with(view_hash, false).and_return(true)
|
173
|
+
expect(@generator).to receive(:load_job_collection).once.with(project_hash, false).and_return(true)
|
174
|
+
@generator.send(:load_collection_from_path, path)
|
175
|
+
end
|
176
|
+
end
|
177
|
+
|
155
178
|
describe '#dump' do
|
156
179
|
it "writes a job's config XML to a file" do
|
157
180
|
@generator.debug = true
|
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.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Igor Moochnick
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-11-
|
12
|
+
date: 2014-11-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
@@ -371,7 +371,13 @@ files:
|
|
371
371
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/sample_pipeline/view.yaml
|
372
372
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/template_pipeline/jobs.tar.gz
|
373
373
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/template_pipeline/project.yaml
|
374
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/test_combo_files/project.json
|
375
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/test_combo_files/view.yaml
|
374
376
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/test_job.xml
|
377
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/test_json_files/project.json
|
378
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/test_json_files/view.json
|
379
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/test_yaml_files/project.yaml
|
380
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/test_yaml_files/view.yaml
|
375
381
|
- spec/lib/jenkins_pipeline_builder/fixtures/view_test/duplicate_view.yaml
|
376
382
|
- spec/lib/jenkins_pipeline_builder/fixtures/view_test/parent_view.yaml
|
377
383
|
- spec/lib/jenkins_pipeline_builder/fixtures/view_test/regular_view.yaml
|
@@ -423,7 +429,13 @@ test_files:
|
|
423
429
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/sample_pipeline/view.yaml
|
424
430
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/template_pipeline/jobs.tar.gz
|
425
431
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/template_pipeline/project.yaml
|
432
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/test_combo_files/project.json
|
433
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/test_combo_files/view.yaml
|
426
434
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/test_job.xml
|
435
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/test_json_files/project.json
|
436
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/test_json_files/view.json
|
437
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/test_yaml_files/project.yaml
|
438
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/test_yaml_files/view.yaml
|
427
439
|
- spec/lib/jenkins_pipeline_builder/fixtures/view_test/duplicate_view.yaml
|
428
440
|
- spec/lib/jenkins_pipeline_builder/fixtures/view_test/parent_view.yaml
|
429
441
|
- spec/lib/jenkins_pipeline_builder/fixtures/view_test/regular_view.yaml
|