jenkins_pipeline_builder 0.8.5 → 0.9.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/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
|