jenkins_pipeline_builder 0.10.4 → 0.10.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/jenkins_pipeline_builder/generator.rb +8 -4
- data/lib/jenkins_pipeline_builder/version.rb +1 -1
- data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/local_override/all_local/10.yaml +6 -0
- data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/local_override/all_local/10_2.yaml +6 -0
- data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/local_override/all_local/project.yaml +15 -0
- data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/local_override/remote_and_local/10.yaml +6 -0
- data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/local_override/remote_and_local/jobs.tar.gz +0 -0
- data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/local_override/remote_and_local/project.yaml +15 -0
- data/spec/lib/jenkins_pipeline_builder/generator_spec.rb +11 -0
- metadata +14 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YWU1ZGI4Y2VjNTc5MmEyMGMyYTA2YjViMDAzNjJlYWNkYWI1M2RkZA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MzA4OGQ1MTYwODVlNGQzNzY4N2Q4NjNmMDkxYjY2OWNjMzczMmNjOA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MjUyYzE2YjRmNGQxNzUzOWI3ZmJmN2NlYjVhZjU3Y2JhYjcxNGNmZGFmNDc2
|
10
|
+
NWE2MmJiYzNkNTVhMzI2NzcxZDExNWRjYTdiZTc4M2M1NDI1MmE3ZmJiNmFm
|
11
|
+
MjM3M2I5Y2U0NWJiNjc2OTllNDZkMmMwNDQzMmJiMDgzN2UwNmI=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MjJlMWRiN2ZjMGRhNDZiODdlYjJiODgzNTY5Zjk2MjEyZjUxZWFjODZkNWEw
|
14
|
+
ZjQ5YjU2NTQwMzJlNzNkY2M0N2E0NDRjMmIwYjUwNjZlMDM5NDQyZDdmMzQw
|
15
|
+
MmQyZDJmMmIyMDVjYTZjYWJhMjVjODMyZjk5MDc1Y2RiMGU1NDg=
|
@@ -229,14 +229,18 @@ module JenkinsPipelineBuilder
|
|
229
229
|
end
|
230
230
|
name = value[:name]
|
231
231
|
if @job_collection.key?(name)
|
232
|
-
|
232
|
+
existing_remote = @job_collection[name.to_s][:remote]
|
233
|
+
# skip if the existing item is local and the new item is remote
|
234
|
+
if remote && !existing_remote
|
235
|
+
next
|
236
|
+
# override if the existing item is remote and the new is local
|
237
|
+
elsif existing_remote && !remote
|
233
238
|
logger.info "Duplicate item with name '#{name}' was detected from the remote folder."
|
234
239
|
else
|
235
240
|
fail "Duplicate item with name '#{name}' was detected."
|
236
241
|
end
|
237
|
-
else
|
238
|
-
@job_collection[name.to_s] = { name: name.to_s, type: key, value: value }
|
239
242
|
end
|
243
|
+
@job_collection[name.to_s] = { name: name.to_s, type: key, value: value, remote: remote }
|
240
244
|
end
|
241
245
|
end
|
242
246
|
|
@@ -317,7 +321,7 @@ module JenkinsPipelineBuilder
|
|
317
321
|
logger.info 'No specific template specified'
|
318
322
|
# Try to load the folder or the pipeline folder
|
319
323
|
path = File.join(path, 'pipeline') if Dir.entries(path).include? 'pipeline'
|
320
|
-
return load_collection_from_path(path)
|
324
|
+
return load_collection_from_path(path, true)
|
321
325
|
end
|
322
326
|
|
323
327
|
load_templates(path, source[:templates])
|
@@ -0,0 +1,15 @@
|
|
1
|
+
- defaults:
|
2
|
+
name: global
|
3
|
+
description: 'Test pipeline for generator_spec.rb'
|
4
|
+
|
5
|
+
- dependencies:
|
6
|
+
- source:
|
7
|
+
url: 'spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/local_override/all_local/jobs.tar.gz'
|
8
|
+
templates:
|
9
|
+
- name: test_temp
|
10
|
+
|
11
|
+
- project:
|
12
|
+
name: TemplatePipeline
|
13
|
+
jobs:
|
14
|
+
- '{{name}}-10'
|
15
|
+
- '{{name}}-11'
|
Binary file
|
@@ -0,0 +1,15 @@
|
|
1
|
+
- defaults:
|
2
|
+
name: global
|
3
|
+
description: 'Test pipeline for generator_spec.rb'
|
4
|
+
|
5
|
+
- dependencies:
|
6
|
+
- source:
|
7
|
+
url: 'spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/local_override/remote_and_local/jobs.tar.gz'
|
8
|
+
templates:
|
9
|
+
- name: test_temp
|
10
|
+
|
11
|
+
- project:
|
12
|
+
name: TemplatePipeline
|
13
|
+
jobs:
|
14
|
+
- '{{name}}-10'
|
15
|
+
- '{{name}}-11'
|
@@ -110,6 +110,17 @@ describe JenkinsPipelineBuilder::Generator do
|
|
110
110
|
expect(@generator.module_registry.registry[:job][:wrappers].keys).to include :test_wrapper
|
111
111
|
@generator.module_registry.registry[:job][:wrappers].delete(:test_wrapper)
|
112
112
|
end
|
113
|
+
|
114
|
+
it 'overrides the remote dependencies with local ones' do
|
115
|
+
errors = bootstrap(fixture_path('local_override/remote_and_local'), 'TemplatePipeline')
|
116
|
+
expect(errors).to be_empty
|
117
|
+
expect(@generator.job_collection['{{name}}-10'][:value][:description]).to eq('Overridden stuff')
|
118
|
+
end
|
119
|
+
|
120
|
+
it 'fails to override when there are duplicate local items' do
|
121
|
+
expect { bootstrap(fixture_path('local_override/all_local'), 'TemplatePipeline') }.to raise_error(StandardError)
|
122
|
+
end
|
123
|
+
|
113
124
|
# Things to check for:
|
114
125
|
# Fail - Finds duplicate job names (load_job_collection)
|
115
126
|
# Extension fails to register?
|
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.10.
|
4
|
+
version: 0.10.5
|
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: 2015-02-
|
12
|
+
date: 2015-02-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
@@ -372,6 +372,12 @@ files:
|
|
372
372
|
- spec/lib/jenkins_pipeline_builder/extensions/publishers_spec.rb
|
373
373
|
- spec/lib/jenkins_pipeline_builder/extensions/wrappers_spec.rb
|
374
374
|
- spec/lib/jenkins_pipeline_builder/extensions_spec.rb
|
375
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/local_override/all_local/10.yaml
|
376
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/local_override/all_local/10_2.yaml
|
377
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/local_override/all_local/project.yaml
|
378
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/local_override/remote_and_local/10.yaml
|
379
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/local_override/remote_and_local/jobs.tar.gz
|
380
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/local_override/remote_and_local/project.yaml
|
375
381
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/pullrequest_pipeline/PullRequest-10-SampleJob.yaml
|
376
382
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/pullrequest_pipeline/PullRequest-40-PullRequestGenerator.yaml
|
377
383
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/pullrequest_pipeline/project.yaml
|
@@ -430,6 +436,12 @@ test_files:
|
|
430
436
|
- spec/lib/jenkins_pipeline_builder/extensions/publishers_spec.rb
|
431
437
|
- spec/lib/jenkins_pipeline_builder/extensions/wrappers_spec.rb
|
432
438
|
- spec/lib/jenkins_pipeline_builder/extensions_spec.rb
|
439
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/local_override/all_local/10.yaml
|
440
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/local_override/all_local/10_2.yaml
|
441
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/local_override/all_local/project.yaml
|
442
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/local_override/remote_and_local/10.yaml
|
443
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/local_override/remote_and_local/jobs.tar.gz
|
444
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/local_override/remote_and_local/project.yaml
|
433
445
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/pullrequest_pipeline/PullRequest-10-SampleJob.yaml
|
434
446
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/pullrequest_pipeline/PullRequest-40-PullRequestGenerator.yaml
|
435
447
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/pullrequest_pipeline/project.yaml
|