jenkins_pipeline_builder 0.15.4 → 0.16.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 +5 -13
- data/example/pipeline/Example-Pipeline.yaml +21 -21
- data/example/pipeline/Example-Promotion.yaml +32 -0
- data/example/pipeline/Example-Release.yaml +2 -0
- data/example/pipeline/project.yaml +2 -0
- data/jenkins_pipeline_builder.gemspec +1 -0
- data/lib/jenkins_pipeline_builder.rb +5 -0
- data/lib/jenkins_pipeline_builder/cli/describe.rb +5 -3
- data/lib/jenkins_pipeline_builder/custom_errors.rb +20 -0
- data/lib/jenkins_pipeline_builder/extension_dsl.rb +2 -2
- data/lib/jenkins_pipeline_builder/extension_set.rb +12 -5
- data/lib/jenkins_pipeline_builder/extensions.rb +7 -6
- data/lib/jenkins_pipeline_builder/extensions/build_steps.rb +93 -0
- data/lib/jenkins_pipeline_builder/extensions/helpers/build_steps/triggered_job.rb +36 -0
- data/lib/jenkins_pipeline_builder/extensions/helpers/builders/blocking_downstream_helper.rb +2 -2
- data/lib/jenkins_pipeline_builder/extensions/helpers/builders/maven3_helper.rb +2 -2
- data/lib/jenkins_pipeline_builder/extensions/helpers/extension_helper.rb +7 -7
- data/lib/jenkins_pipeline_builder/extensions/helpers/triggers/upstream_helper.rb +2 -2
- data/lib/jenkins_pipeline_builder/extensions/job_attributes.rb +60 -1
- data/lib/jenkins_pipeline_builder/extensions/promotion_conditions.rb +80 -0
- data/lib/jenkins_pipeline_builder/generator.rb +65 -57
- data/lib/jenkins_pipeline_builder/job.rb +1 -7
- data/lib/jenkins_pipeline_builder/job_collection.rb +16 -14
- data/lib/jenkins_pipeline_builder/module_registry.rb +4 -4
- data/lib/jenkins_pipeline_builder/promotion.rb +82 -0
- data/lib/jenkins_pipeline_builder/utils.rb +6 -0
- data/lib/jenkins_pipeline_builder/version.rb +1 -1
- data/lib/jenkins_pipeline_builder/view.rb +1 -4
- data/spec/lib/jenkins_pipeline_builder/extensions/build_steps_spec.rb +198 -0
- data/spec/lib/jenkins_pipeline_builder/extensions/builders_spec.rb +1 -3
- data/spec/lib/jenkins_pipeline_builder/extensions/job_attributes_spec.rb +63 -0
- data/spec/lib/jenkins_pipeline_builder/extensions/promotion_conditions_spec.rb +281 -0
- data/spec/lib/jenkins_pipeline_builder/extensions/registered_spec.rb +11 -3
- data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/sample_pipeline/SamplePipeline-30-Release.yaml +3 -1
- data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/sample_pipeline/SamplePipeline-40-Promotion.yaml +31 -0
- data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/sample_pipeline/project.yaml +3 -1
- data/spec/lib/jenkins_pipeline_builder/fixtures/promotions_test/sample_promotion.yaml +31 -0
- data/spec/lib/jenkins_pipeline_builder/generator_spec.rb +2 -2
- data/spec/lib/jenkins_pipeline_builder/job_spec.rb +1 -19
- data/spec/lib/jenkins_pipeline_builder/promotion_spec.rb +88 -0
- data/spec/lib/jenkins_pipeline_builder/spec_helper.rb +6 -0
- metadata +86 -59
- data/lib/jenkins_pipeline_builder/project.rb +0 -26
@@ -10,6 +10,7 @@ WRAPPERS = {
|
|
10
10
|
timestamp: ['0'],
|
11
11
|
xvfb: ['0']
|
12
12
|
}.freeze
|
13
|
+
|
13
14
|
PUBLISHERS = {
|
14
15
|
archive_artifact: ['0'],
|
15
16
|
brakeman: ['0'],
|
@@ -31,6 +32,7 @@ PUBLISHERS = {
|
|
31
32
|
sonar_result: ['0'],
|
32
33
|
xunit: ['0']
|
33
34
|
}.freeze
|
35
|
+
|
34
36
|
BUILDERS = {
|
35
37
|
blocking_downstream: ['0'],
|
36
38
|
copy_artifact: ['0'],
|
@@ -42,14 +44,15 @@ BUILDERS = {
|
|
42
44
|
checkmarx_scan: ['0'],
|
43
45
|
system_groovy: ['0'],
|
44
46
|
sonar_standalone: ['0']
|
45
|
-
|
46
47
|
}.freeze
|
48
|
+
|
47
49
|
TRIGGERS = {
|
48
50
|
git_push: ['0'],
|
49
51
|
periodic_build: ['0'],
|
50
52
|
scm_polling: ['0'],
|
51
53
|
upstream: ['0']
|
52
54
|
}.freeze
|
55
|
+
|
53
56
|
JOB_ATTRIBUTES = {
|
54
57
|
concurrent_build: ['0'],
|
55
58
|
description: ['0'],
|
@@ -63,7 +66,12 @@ JOB_ATTRIBUTES = {
|
|
63
66
|
priority: ['0'],
|
64
67
|
promoted_builds: ['0'],
|
65
68
|
scm_params: ['0', '2.0'],
|
66
|
-
throttle: ['0']
|
69
|
+
throttle: ['0'],
|
70
|
+
promotion_description: ['0'],
|
71
|
+
block_when_downstream_building: ['0'],
|
72
|
+
block_when_upstream_building: ['0'],
|
73
|
+
is_visible: ['0'],
|
74
|
+
promotion_icon: ['0']
|
67
75
|
}.freeze
|
68
76
|
|
69
77
|
describe 'built in extensions' do
|
@@ -102,7 +110,7 @@ describe 'built in extensions' do
|
|
102
110
|
|
103
111
|
context 'job_attributes' do
|
104
112
|
it 'has the correct number' do
|
105
|
-
expect(@registry[:job].size -
|
113
|
+
expect(@registry[:job].size - JenkinsPipelineBuilder.registry.entries.size).to eq JOB_ATTRIBUTES.size
|
106
114
|
end
|
107
115
|
|
108
116
|
JOB_ATTRIBUTES.each do |job_attribute, versions|
|
@@ -0,0 +1,31 @@
|
|
1
|
+
- promotion:
|
2
|
+
name: '{{name}} Stage Promotion'
|
3
|
+
promotion_description: 'Describe the promotion process in play'
|
4
|
+
block_when_downstream_building: false # unless defined? false
|
5
|
+
block_when_upstream_building: false # unless defined? false
|
6
|
+
icon: 'Gold star' # || 'Silver star'
|
7
|
+
promotion_conditions: # follow parameters
|
8
|
+
- manual:
|
9
|
+
users: 'authorized' # || ''
|
10
|
+
- self_promotion:
|
11
|
+
even_if_unstable: true # unless defined? false
|
12
|
+
- parameterized_self_promotion:
|
13
|
+
parameter_name: 'SOME_ENV_VAR'
|
14
|
+
parameter_value: true
|
15
|
+
even_if_unstable: true # unless defined? false
|
16
|
+
- downstream_pass:
|
17
|
+
jobs: '{{name}}-10-Commit'
|
18
|
+
even_if_unstable: true # unless defined? false
|
19
|
+
- upstream_promotion:
|
20
|
+
promotion_name: '{{name}} Staging Promotion'
|
21
|
+
build_steps: # follow builders
|
22
|
+
- triggered_job:
|
23
|
+
name: '{{name}}-30-Release' # maps to <projects>
|
24
|
+
block_condition: # included in xml only if checked on UI
|
25
|
+
build_step_failure_threshold: 'FAILURE' # 'FAILURE' # %s(never FAILURE UNSTABLE SUCCESS)
|
26
|
+
failure_threshold: 'FAILURE' # || # %s(never FAILURE UNSTABLE SUCCESS)
|
27
|
+
unstable_threshold: 'UNSTABLE' # || # %s(never FAILURE UNSTABLE SUCCESS)
|
28
|
+
build_parameters:
|
29
|
+
current: true # unless defined? false
|
30
|
+
- keep_builds_forever:
|
31
|
+
value: true
|
@@ -0,0 +1,31 @@
|
|
1
|
+
- promotion:
|
2
|
+
name: '01. Stage Promotion'
|
3
|
+
description: 'Describe the promotion process in play'
|
4
|
+
job_type: promotion
|
5
|
+
block_when_downstream_building: false # unless defined? false
|
6
|
+
block_when_upstream_building: false # unless defined? false
|
7
|
+
icon: 'Gold star' # || 'Silver star'
|
8
|
+
promotion_conditions: # follow parameters
|
9
|
+
- manual:
|
10
|
+
users: 'authorized' # || ''
|
11
|
+
- self_promotion:
|
12
|
+
even_if_unstable: true # unless defined? false
|
13
|
+
- parameterized_self_promotion:
|
14
|
+
parameter_name: 'SOME_ENV_VAR'
|
15
|
+
parameter_value: true
|
16
|
+
even_if_unstable: true # unless defined? false
|
17
|
+
- downstream_pass:
|
18
|
+
jobs: '{{Example}}-Commit'
|
19
|
+
even_if_unstable: true # unless defined? false
|
20
|
+
- upstream_promotion:
|
21
|
+
promotion_name: '01. Staging Promotion'
|
22
|
+
build_steps: # follow builders
|
23
|
+
- triggered_job:
|
24
|
+
name: '{{name}}-Release' # maps to <projects>
|
25
|
+
block_condition: # included in xml only if checked on UI
|
26
|
+
build_step_failure_threshold: 'FAILURE' # 'FAILURE' # %s(never FAILURE UNSTABLE SUCCESS)
|
27
|
+
failure_threshold: 'FAILURE' # || # %s(never FAILURE UNSTABLE SUCCESS)
|
28
|
+
unstable_threshold: 'UNSTABLE' # || # %s(never FAILURE UNSTABLE SUCCESS)
|
29
|
+
use_current_build_params: true # unless defined? false
|
30
|
+
- keep_builds_forever:
|
31
|
+
value: true
|
@@ -219,13 +219,13 @@ describe JenkinsPipelineBuilder::Generator do
|
|
219
219
|
it 'errors when reading a bad yaml file' do
|
220
220
|
path = File.expand_path('../fixtures/generator_tests/test_bad_yaml_files', __FILE__)
|
221
221
|
expect { @generator.job_collection.load_from_path path }.to raise_error(
|
222
|
-
|
222
|
+
CustomErrors::ParseError, /There was an error while parsing a file/
|
223
223
|
)
|
224
224
|
end
|
225
225
|
it 'errors when reading a bad json file' do
|
226
226
|
path = File.expand_path('../fixtures/generator_tests/test_bad_json_files', __FILE__)
|
227
227
|
expect { @generator.job_collection.load_from_path path }.to raise_error(
|
228
|
-
|
228
|
+
CustomErrors::ParseError, /There was an error while parsing a file/
|
229
229
|
)
|
230
230
|
end
|
231
231
|
end
|
@@ -50,24 +50,6 @@ describe JenkinsPipelineBuilder::Job do
|
|
50
50
|
expect(JenkinsPipelineBuilder.client.job).to_not receive(:exists?)
|
51
51
|
job.create_or_update
|
52
52
|
end
|
53
|
-
|
54
|
-
it 'creates if the job does not exist' do
|
55
|
-
expect(JenkinsPipelineBuilder).to receive(:debug).and_return false
|
56
|
-
expect(JenkinsPipelineBuilder).to receive(:file_mode).and_return false
|
57
|
-
expect(job).to receive(:to_xml).and_return [true, '']
|
58
|
-
expect(@job_double).to receive(:exists?).with('asdf').and_return false
|
59
|
-
expect(@job_double).to receive(:create).and_return true
|
60
|
-
job.create_or_update
|
61
|
-
end
|
62
|
-
|
63
|
-
it 'updates if the job exists' do
|
64
|
-
expect(JenkinsPipelineBuilder).to receive(:debug).and_return false
|
65
|
-
expect(JenkinsPipelineBuilder).to receive(:file_mode).and_return false
|
66
|
-
expect(job).to receive(:to_xml).and_return [true, '']
|
67
|
-
expect(@job_double).to receive(:exists?).with('asdf').and_return true
|
68
|
-
expect(@job_double).to receive(:update).and_return true
|
69
|
-
job.create_or_update
|
70
|
-
end
|
71
53
|
end
|
72
54
|
|
73
55
|
context '#to_xml' do
|
@@ -133,7 +115,7 @@ describe JenkinsPipelineBuilder::Job do
|
|
133
115
|
end
|
134
116
|
|
135
117
|
it 'fails on an unknown type' do
|
136
|
-
job = described_class.new job_type: '
|
118
|
+
job = described_class.new job_type: 'unknown', name: 'asdf'
|
137
119
|
|
138
120
|
success, _payload = job.to_xml
|
139
121
|
expect(success).to be false
|
@@ -0,0 +1,88 @@
|
|
1
|
+
require File.expand_path('../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe JenkinsPipelineBuilder::Promotion do
|
4
|
+
before :all do
|
5
|
+
JenkinsPipelineBuilder.credentials = {
|
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
|
13
|
+
@promotions = JenkinsPipelineBuilder::Promotion.new(generator)
|
14
|
+
end
|
15
|
+
|
16
|
+
before :each do
|
17
|
+
allow(JenkinsPipelineBuilder).to receive(:logger).and_return double(
|
18
|
+
debug: true,
|
19
|
+
info: true,
|
20
|
+
warn: true,
|
21
|
+
error: true,
|
22
|
+
fatal: true
|
23
|
+
)
|
24
|
+
end
|
25
|
+
|
26
|
+
describe '#create' do
|
27
|
+
before :each do
|
28
|
+
allow(JenkinsPipelineBuilder.client).to receive(:plugin).and_return double(
|
29
|
+
list_installed: { 'promoted-builds' => '2.31', 'parameterized-trigger' => '20.0' }
|
30
|
+
)
|
31
|
+
condition = Nokogiri::XML::Builder.new { |xml| xml.conditions }
|
32
|
+
@n_xml = condition.doc
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'generates correct xml given parameters' do
|
36
|
+
params = { name: 'SamplePipeline Stage Promotion',
|
37
|
+
promotion_description: 'Describe the promotion process in play',
|
38
|
+
block_when_downstream_building: false,
|
39
|
+
block_when_upstream_building: false,
|
40
|
+
icon: 'Gold star',
|
41
|
+
conditions: [
|
42
|
+
{ manual: { users: 'authorized' } },
|
43
|
+
{ self_promotion: { even_if_unstable: true } },
|
44
|
+
{ parameterized_self_promotion: {
|
45
|
+
parameter_name: 'SOME_ENV_VAR', parameter_value: true, even_if_unstable: true
|
46
|
+
} },
|
47
|
+
{ downstream_pass: { jobs: 'SamplePipeline-10-Commit', even_if_unstable: true } },
|
48
|
+
{ upstream_promotion: { promotion_name: 'SamplePipeline Staging Promotion' } }
|
49
|
+
],
|
50
|
+
build_steps: [
|
51
|
+
{ triggered_job: {
|
52
|
+
name: 'SamplePipeline-30-Release',
|
53
|
+
block_condition: { build_step_failure_threshold: 'FAILURE',
|
54
|
+
failure_threshold: 'FAILURE',
|
55
|
+
unstable_threshold: 'UNSTABLE' },
|
56
|
+
build_parameters: { current: true }
|
57
|
+
} },
|
58
|
+
{ keep_builds_forever: { value: true } }
|
59
|
+
] }
|
60
|
+
|
61
|
+
@n_xml = @promotions.create(params, 'Random associated job name')
|
62
|
+
|
63
|
+
expect(@n_xml).to include 'conditions'
|
64
|
+
expect(@n_xml).to include 'buildSteps'
|
65
|
+
expect(@n_xml).to include 'hudson.plugins.promoted__builds.PromotionProcess plugin="promoted-builds@2.27"'
|
66
|
+
expect(@n_xml).to include 'hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.31"'
|
67
|
+
expect(@n_xml).to include 'hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig'
|
68
|
+
expect(@n_xml).to include 'configs'
|
69
|
+
expect(@n_xml).to include 'projects'
|
70
|
+
expect(@n_xml).to include 'triggerWithNoParameters'
|
71
|
+
expect(@n_xml).to include 'block'
|
72
|
+
expect(@n_xml).to include 'buildStepFailureThreshold'
|
73
|
+
expect(@n_xml).to include 'name'
|
74
|
+
expect(@n_xml).to include 'ordinal'
|
75
|
+
expect(@n_xml).to include 'color'
|
76
|
+
expect(@n_xml).to include 'completeBuild'
|
77
|
+
expect(@n_xml).to include 'unstableThreshold'
|
78
|
+
expect(@n_xml).to include 'failureThreshold'
|
79
|
+
expect(@n_xml).to include 'buildAllNodesWithLabel'
|
80
|
+
expect(@n_xml).to include 'hudson.plugins.promoted__builds.KeepBuildForeverAction'
|
81
|
+
end
|
82
|
+
|
83
|
+
it 'fails if prom_to_xml fails' do
|
84
|
+
expect(@promotions).to receive(:prom_to_xml).ordered.and_return [false, 'FAILURE']
|
85
|
+
expect(@promotions.create('', '')).to eq [false, 'FAILURE']
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
@@ -1,8 +1,10 @@
|
|
1
1
|
require 'rspec'
|
2
|
+
require 'rspec/matchers'
|
2
3
|
|
3
4
|
require 'simplecov'
|
4
5
|
require 'simplecov-rcov'
|
5
6
|
require 'webmock/rspec'
|
7
|
+
require 'equivalent-xml'
|
6
8
|
|
7
9
|
require File.expand_path('../../../../lib/jenkins_pipeline_builder', __FILE__)
|
8
10
|
|
@@ -35,3 +37,7 @@ RSpec::Matchers.define :have_registered_versions do |versions|
|
|
35
37
|
"Expected #{@set.name} to have registered versions #{versions}. Got #{@registered_versions}"
|
36
38
|
end
|
37
39
|
end
|
40
|
+
|
41
|
+
def parse_expectation_xml(xml_string)
|
42
|
+
Nokogiri::XML.parse(xml_string, &:noblanks)
|
43
|
+
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.
|
4
|
+
version: 0.16.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Igor Moochnick
|
@@ -9,286 +9,300 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-10-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - ~>
|
18
|
+
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: 1.6.0
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- - ~>
|
25
|
+
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: 1.6.0
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: jenkins_api_client
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- - ~>
|
32
|
+
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: 1.0.0
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- - ~>
|
39
|
+
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: 1.0.0
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: thor
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- -
|
46
|
+
- - ">="
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: 0.18.0
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- -
|
53
|
+
- - ">="
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: 0.18.0
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: activesupport
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- - ~>
|
60
|
+
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: 4.2.6
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- - ~>
|
67
|
+
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: 4.2.6
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: archive-tar-minitar
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
|
-
- -
|
74
|
+
- - ">="
|
75
75
|
- !ruby/object:Gem::Version
|
76
76
|
version: '0'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
|
-
- -
|
81
|
+
- - ">="
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '0'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
name: bundler
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
|
-
- - ~>
|
88
|
+
- - "~>"
|
89
89
|
- !ruby/object:Gem::Version
|
90
90
|
version: '1.3'
|
91
91
|
type: :development
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
|
-
- - ~>
|
95
|
+
- - "~>"
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '1.3'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
99
|
name: rake
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
|
-
- -
|
102
|
+
- - ">="
|
103
103
|
- !ruby/object:Gem::Version
|
104
104
|
version: '0'
|
105
105
|
type: :development
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
|
-
- -
|
109
|
+
- - ">="
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
version: '0'
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
113
|
name: rspec
|
114
114
|
requirement: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
|
-
- - ~>
|
116
|
+
- - "~>"
|
117
117
|
- !ruby/object:Gem::Version
|
118
118
|
version: '3.0'
|
119
119
|
type: :development
|
120
120
|
prerelease: false
|
121
121
|
version_requirements: !ruby/object:Gem::Requirement
|
122
122
|
requirements:
|
123
|
-
- - ~>
|
123
|
+
- - "~>"
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
version: '3.0'
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
127
|
name: bump
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
129
129
|
requirements:
|
130
|
-
- -
|
130
|
+
- - ">="
|
131
131
|
- !ruby/object:Gem::Version
|
132
132
|
version: '0'
|
133
133
|
type: :development
|
134
134
|
prerelease: false
|
135
135
|
version_requirements: !ruby/object:Gem::Requirement
|
136
136
|
requirements:
|
137
|
-
- -
|
137
|
+
- - ">="
|
138
138
|
- !ruby/object:Gem::Version
|
139
139
|
version: '0'
|
140
140
|
- !ruby/object:Gem::Dependency
|
141
141
|
name: json
|
142
142
|
requirement: !ruby/object:Gem::Requirement
|
143
143
|
requirements:
|
144
|
-
- -
|
144
|
+
- - ">="
|
145
145
|
- !ruby/object:Gem::Version
|
146
146
|
version: '0'
|
147
147
|
type: :development
|
148
148
|
prerelease: false
|
149
149
|
version_requirements: !ruby/object:Gem::Requirement
|
150
150
|
requirements:
|
151
|
-
- -
|
151
|
+
- - ">="
|
152
152
|
- !ruby/object:Gem::Version
|
153
153
|
version: '0'
|
154
154
|
- !ruby/object:Gem::Dependency
|
155
155
|
name: gem-release
|
156
156
|
requirement: !ruby/object:Gem::Requirement
|
157
157
|
requirements:
|
158
|
-
- -
|
158
|
+
- - ">="
|
159
159
|
- !ruby/object:Gem::Version
|
160
160
|
version: '0'
|
161
161
|
type: :development
|
162
162
|
prerelease: false
|
163
163
|
version_requirements: !ruby/object:Gem::Requirement
|
164
164
|
requirements:
|
165
|
-
- -
|
165
|
+
- - ">="
|
166
166
|
- !ruby/object:Gem::Version
|
167
167
|
version: '0'
|
168
168
|
- !ruby/object:Gem::Dependency
|
169
169
|
name: byebug
|
170
170
|
requirement: !ruby/object:Gem::Requirement
|
171
171
|
requirements:
|
172
|
-
- -
|
172
|
+
- - ">="
|
173
173
|
- !ruby/object:Gem::Version
|
174
174
|
version: '0'
|
175
175
|
type: :development
|
176
176
|
prerelease: false
|
177
177
|
version_requirements: !ruby/object:Gem::Requirement
|
178
178
|
requirements:
|
179
|
-
- -
|
179
|
+
- - ">="
|
180
180
|
- !ruby/object:Gem::Version
|
181
181
|
version: '0'
|
182
182
|
- !ruby/object:Gem::Dependency
|
183
183
|
name: simplecov
|
184
184
|
requirement: !ruby/object:Gem::Requirement
|
185
185
|
requirements:
|
186
|
-
- -
|
186
|
+
- - ">="
|
187
187
|
- !ruby/object:Gem::Version
|
188
188
|
version: '0'
|
189
189
|
type: :development
|
190
190
|
prerelease: false
|
191
191
|
version_requirements: !ruby/object:Gem::Requirement
|
192
192
|
requirements:
|
193
|
-
- -
|
193
|
+
- - ">="
|
194
194
|
- !ruby/object:Gem::Version
|
195
195
|
version: '0'
|
196
196
|
- !ruby/object:Gem::Dependency
|
197
197
|
name: simplecov-rcov
|
198
198
|
requirement: !ruby/object:Gem::Requirement
|
199
199
|
requirements:
|
200
|
-
- -
|
200
|
+
- - ">="
|
201
201
|
- !ruby/object:Gem::Version
|
202
202
|
version: '0'
|
203
203
|
type: :development
|
204
204
|
prerelease: false
|
205
205
|
version_requirements: !ruby/object:Gem::Requirement
|
206
206
|
requirements:
|
207
|
-
- -
|
207
|
+
- - ">="
|
208
208
|
- !ruby/object:Gem::Version
|
209
209
|
version: '0'
|
210
210
|
- !ruby/object:Gem::Dependency
|
211
211
|
name: kwalify
|
212
212
|
requirement: !ruby/object:Gem::Requirement
|
213
213
|
requirements:
|
214
|
-
- -
|
214
|
+
- - ">="
|
215
215
|
- !ruby/object:Gem::Version
|
216
216
|
version: '0'
|
217
217
|
type: :development
|
218
218
|
prerelease: false
|
219
219
|
version_requirements: !ruby/object:Gem::Requirement
|
220
220
|
requirements:
|
221
|
-
- -
|
221
|
+
- - ">="
|
222
222
|
- !ruby/object:Gem::Version
|
223
223
|
version: '0'
|
224
224
|
- !ruby/object:Gem::Dependency
|
225
225
|
name: equivalent-xml
|
226
226
|
requirement: !ruby/object:Gem::Requirement
|
227
227
|
requirements:
|
228
|
-
- -
|
228
|
+
- - ">="
|
229
229
|
- !ruby/object:Gem::Version
|
230
230
|
version: '0'
|
231
231
|
type: :development
|
232
232
|
prerelease: false
|
233
233
|
version_requirements: !ruby/object:Gem::Requirement
|
234
234
|
requirements:
|
235
|
-
- -
|
235
|
+
- - ">="
|
236
236
|
- !ruby/object:Gem::Version
|
237
237
|
version: '0'
|
238
238
|
- !ruby/object:Gem::Dependency
|
239
239
|
name: yard-thor
|
240
240
|
requirement: !ruby/object:Gem::Requirement
|
241
241
|
requirements:
|
242
|
-
- -
|
242
|
+
- - ">="
|
243
243
|
- !ruby/object:Gem::Version
|
244
244
|
version: '0'
|
245
245
|
type: :development
|
246
246
|
prerelease: false
|
247
247
|
version_requirements: !ruby/object:Gem::Requirement
|
248
248
|
requirements:
|
249
|
-
- -
|
249
|
+
- - ">="
|
250
250
|
- !ruby/object:Gem::Version
|
251
251
|
version: '0'
|
252
252
|
- !ruby/object:Gem::Dependency
|
253
253
|
name: yard
|
254
254
|
requirement: !ruby/object:Gem::Requirement
|
255
255
|
requirements:
|
256
|
-
- -
|
256
|
+
- - ">="
|
257
257
|
- !ruby/object:Gem::Version
|
258
258
|
version: '0'
|
259
259
|
type: :development
|
260
260
|
prerelease: false
|
261
261
|
version_requirements: !ruby/object:Gem::Requirement
|
262
262
|
requirements:
|
263
|
-
- -
|
263
|
+
- - ">="
|
264
|
+
- !ruby/object:Gem::Version
|
265
|
+
version: '0'
|
266
|
+
- !ruby/object:Gem::Dependency
|
267
|
+
name: pry
|
268
|
+
requirement: !ruby/object:Gem::Requirement
|
269
|
+
requirements:
|
270
|
+
- - ">="
|
271
|
+
- !ruby/object:Gem::Version
|
272
|
+
version: '0'
|
273
|
+
type: :development
|
274
|
+
prerelease: false
|
275
|
+
version_requirements: !ruby/object:Gem::Requirement
|
276
|
+
requirements:
|
277
|
+
- - ">="
|
264
278
|
- !ruby/object:Gem::Version
|
265
279
|
version: '0'
|
266
280
|
- !ruby/object:Gem::Dependency
|
267
281
|
name: rspec_junit_formatter
|
268
282
|
requirement: !ruby/object:Gem::Requirement
|
269
283
|
requirements:
|
270
|
-
- -
|
284
|
+
- - ">="
|
271
285
|
- !ruby/object:Gem::Version
|
272
286
|
version: '0'
|
273
287
|
type: :development
|
274
288
|
prerelease: false
|
275
289
|
version_requirements: !ruby/object:Gem::Requirement
|
276
290
|
requirements:
|
277
|
-
- -
|
291
|
+
- - ">="
|
278
292
|
- !ruby/object:Gem::Version
|
279
293
|
version: '0'
|
280
294
|
- !ruby/object:Gem::Dependency
|
281
295
|
name: webmock
|
282
296
|
requirement: !ruby/object:Gem::Requirement
|
283
297
|
requirements:
|
284
|
-
- - ~>
|
298
|
+
- - "~>"
|
285
299
|
- !ruby/object:Gem::Version
|
286
300
|
version: '1.0'
|
287
301
|
type: :development
|
288
302
|
prerelease: false
|
289
303
|
version_requirements: !ruby/object:Gem::Requirement
|
290
304
|
requirements:
|
291
|
-
- - ~>
|
305
|
+
- - "~>"
|
292
306
|
- !ruby/object:Gem::Version
|
293
307
|
version: '1.0'
|
294
308
|
- !ruby/object:Gem::Dependency
|
@@ -305,11 +319,9 @@ dependencies:
|
|
305
319
|
- - '='
|
306
320
|
- !ruby/object:Gem::Version
|
307
321
|
version: 0.40.0
|
308
|
-
description:
|
309
|
-
focused on
|
310
|
-
|
311
|
-
automating Job & Pipeline creation from the YAML files checked-in with your application
|
312
|
-
source code'
|
322
|
+
description: |-
|
323
|
+
This is a simple and easy-to-use Jenkins Pipeline generator with features focused on
|
324
|
+
automating Job & Pipeline creation from the YAML files checked-in with your application source code
|
313
325
|
email:
|
314
326
|
- igor.moochnick@gmail.com
|
315
327
|
- crimsonknave@gmail.com
|
@@ -318,14 +330,14 @@ executables:
|
|
318
330
|
extensions: []
|
319
331
|
extra_rdoc_files: []
|
320
332
|
files:
|
321
|
-
- .ackrc
|
322
|
-
- .gitignore
|
323
|
-
- .rspec
|
324
|
-
- .rubocop.yml
|
325
|
-
- .ruby-gemset
|
326
|
-
- .ruby-version
|
327
|
-
- .simplecov
|
328
|
-
- .travis.yml
|
333
|
+
- ".ackrc"
|
334
|
+
- ".gitignore"
|
335
|
+
- ".rspec"
|
336
|
+
- ".rubocop.yml"
|
337
|
+
- ".ruby-gemset"
|
338
|
+
- ".ruby-version"
|
339
|
+
- ".simplecov"
|
340
|
+
- ".travis.yml"
|
329
341
|
- Gemfile
|
330
342
|
- LICENSE
|
331
343
|
- README.md
|
@@ -338,6 +350,7 @@ files:
|
|
338
350
|
- example/pipeline/Example-Commit.yaml
|
339
351
|
- example/pipeline/Example-Pipeline.yaml
|
340
352
|
- example/pipeline/Example-PipelineGenerator.yaml
|
353
|
+
- example/pipeline/Example-Promotion.yaml
|
341
354
|
- example/pipeline/Example-Release.yaml
|
342
355
|
- example/pipeline/Example-Upgrade.yaml
|
343
356
|
- example/pipeline/project.yaml
|
@@ -351,10 +364,13 @@ files:
|
|
351
364
|
- lib/jenkins_pipeline_builder/cli/pipeline.rb
|
352
365
|
- lib/jenkins_pipeline_builder/cli/view.rb
|
353
366
|
- lib/jenkins_pipeline_builder/compiler.rb
|
367
|
+
- lib/jenkins_pipeline_builder/custom_errors.rb
|
354
368
|
- lib/jenkins_pipeline_builder/extension_dsl.rb
|
355
369
|
- lib/jenkins_pipeline_builder/extension_set.rb
|
356
370
|
- lib/jenkins_pipeline_builder/extensions.rb
|
371
|
+
- lib/jenkins_pipeline_builder/extensions/build_steps.rb
|
357
372
|
- lib/jenkins_pipeline_builder/extensions/builders.rb
|
373
|
+
- lib/jenkins_pipeline_builder/extensions/helpers/build_steps/triggered_job.rb
|
358
374
|
- lib/jenkins_pipeline_builder/extensions/helpers/builders/blocking_downstream_helper.rb
|
359
375
|
- lib/jenkins_pipeline_builder/extensions/helpers/builders/maven3_helper.rb
|
360
376
|
- lib/jenkins_pipeline_builder/extensions/helpers/extension_helper.rb
|
@@ -363,6 +379,7 @@ files:
|
|
363
379
|
- lib/jenkins_pipeline_builder/extensions/helpers/publishers/email_ext_helper.rb
|
364
380
|
- lib/jenkins_pipeline_builder/extensions/helpers/triggers/upstream_helper.rb
|
365
381
|
- lib/jenkins_pipeline_builder/extensions/job_attributes.rb
|
382
|
+
- lib/jenkins_pipeline_builder/extensions/promotion_conditions.rb
|
366
383
|
- lib/jenkins_pipeline_builder/extensions/publishers.rb
|
367
384
|
- lib/jenkins_pipeline_builder/extensions/triggers.rb
|
368
385
|
- lib/jenkins_pipeline_builder/extensions/wrappers.rb
|
@@ -370,7 +387,7 @@ files:
|
|
370
387
|
- lib/jenkins_pipeline_builder/job.rb
|
371
388
|
- lib/jenkins_pipeline_builder/job_collection.rb
|
372
389
|
- lib/jenkins_pipeline_builder/module_registry.rb
|
373
|
-
- lib/jenkins_pipeline_builder/
|
390
|
+
- lib/jenkins_pipeline_builder/promotion.rb
|
374
391
|
- lib/jenkins_pipeline_builder/pull_request_generator.rb
|
375
392
|
- lib/jenkins_pipeline_builder/remote_dependencies.rb
|
376
393
|
- lib/jenkins_pipeline_builder/utils.rb
|
@@ -383,8 +400,10 @@ files:
|
|
383
400
|
- spec/lib/jenkins_pipeline_builder/compiler_spec.rb
|
384
401
|
- spec/lib/jenkins_pipeline_builder/extension_dsl_spec.rb
|
385
402
|
- spec/lib/jenkins_pipeline_builder/extension_set_spec.rb
|
403
|
+
- spec/lib/jenkins_pipeline_builder/extensions/build_steps_spec.rb
|
386
404
|
- spec/lib/jenkins_pipeline_builder/extensions/builders_spec.rb
|
387
405
|
- spec/lib/jenkins_pipeline_builder/extensions/job_attributes_spec.rb
|
406
|
+
- spec/lib/jenkins_pipeline_builder/extensions/promotion_conditions_spec.rb
|
388
407
|
- spec/lib/jenkins_pipeline_builder/extensions/publishers_spec.rb
|
389
408
|
- spec/lib/jenkins_pipeline_builder/extensions/registered_spec.rb
|
390
409
|
- spec/lib/jenkins_pipeline_builder/extensions/triggers_spec.rb
|
@@ -407,6 +426,7 @@ files:
|
|
407
426
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/sample_pipeline/SamplePipeline-10-Commit.yaml
|
408
427
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/sample_pipeline/SamplePipeline-20-Acceptance.yaml
|
409
428
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/sample_pipeline/SamplePipeline-30-Release.yaml
|
429
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/sample_pipeline/SamplePipeline-40-Promotion.yaml
|
410
430
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/sample_pipeline/project.yaml
|
411
431
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/sample_pipeline/view.yaml
|
412
432
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/template_pipeline/jobs.tar.gz
|
@@ -426,6 +446,7 @@ files:
|
|
426
446
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/test_yaml_files/view.yaml
|
427
447
|
- spec/lib/jenkins_pipeline_builder/fixtures/job_collection/extensions/extension.rb
|
428
448
|
- spec/lib/jenkins_pipeline_builder/fixtures/job_collection/extensions/helpers/my_test_thing_helper.rb
|
449
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/promotions_test/sample_promotion.yaml
|
429
450
|
- spec/lib/jenkins_pipeline_builder/fixtures/sample_creds.json
|
430
451
|
- spec/lib/jenkins_pipeline_builder/fixtures/sample_creds.rb
|
431
452
|
- spec/lib/jenkins_pipeline_builder/fixtures/sample_creds.yaml
|
@@ -437,6 +458,7 @@ files:
|
|
437
458
|
- spec/lib/jenkins_pipeline_builder/job_collection_spec.rb
|
438
459
|
- spec/lib/jenkins_pipeline_builder/job_spec.rb
|
439
460
|
- spec/lib/jenkins_pipeline_builder/module_registry_spec.rb
|
461
|
+
- spec/lib/jenkins_pipeline_builder/promotion_spec.rb
|
440
462
|
- spec/lib/jenkins_pipeline_builder/pull_request_generator_spec.rb
|
441
463
|
- spec/lib/jenkins_pipeline_builder/spec_helper.rb
|
442
464
|
- spec/lib/jenkins_pipeline_builder/utils_spec.rb
|
@@ -452,17 +474,17 @@ require_paths:
|
|
452
474
|
- lib
|
453
475
|
required_ruby_version: !ruby/object:Gem::Requirement
|
454
476
|
requirements:
|
455
|
-
- -
|
477
|
+
- - ">="
|
456
478
|
- !ruby/object:Gem::Version
|
457
479
|
version: '0'
|
458
480
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
459
481
|
requirements:
|
460
|
-
- -
|
482
|
+
- - ">="
|
461
483
|
- !ruby/object:Gem::Version
|
462
484
|
version: '0'
|
463
485
|
requirements: []
|
464
486
|
rubyforge_project:
|
465
|
-
rubygems_version: 2.
|
487
|
+
rubygems_version: 2.6.6
|
466
488
|
signing_key:
|
467
489
|
specification_version: 4
|
468
490
|
summary: This gem is will boostrap your Jenkins pipelines
|
@@ -471,8 +493,10 @@ test_files:
|
|
471
493
|
- spec/lib/jenkins_pipeline_builder/compiler_spec.rb
|
472
494
|
- spec/lib/jenkins_pipeline_builder/extension_dsl_spec.rb
|
473
495
|
- spec/lib/jenkins_pipeline_builder/extension_set_spec.rb
|
496
|
+
- spec/lib/jenkins_pipeline_builder/extensions/build_steps_spec.rb
|
474
497
|
- spec/lib/jenkins_pipeline_builder/extensions/builders_spec.rb
|
475
498
|
- spec/lib/jenkins_pipeline_builder/extensions/job_attributes_spec.rb
|
499
|
+
- spec/lib/jenkins_pipeline_builder/extensions/promotion_conditions_spec.rb
|
476
500
|
- spec/lib/jenkins_pipeline_builder/extensions/publishers_spec.rb
|
477
501
|
- spec/lib/jenkins_pipeline_builder/extensions/registered_spec.rb
|
478
502
|
- spec/lib/jenkins_pipeline_builder/extensions/triggers_spec.rb
|
@@ -495,6 +519,7 @@ test_files:
|
|
495
519
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/sample_pipeline/SamplePipeline-10-Commit.yaml
|
496
520
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/sample_pipeline/SamplePipeline-20-Acceptance.yaml
|
497
521
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/sample_pipeline/SamplePipeline-30-Release.yaml
|
522
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/sample_pipeline/SamplePipeline-40-Promotion.yaml
|
498
523
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/sample_pipeline/project.yaml
|
499
524
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/sample_pipeline/view.yaml
|
500
525
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/template_pipeline/jobs.tar.gz
|
@@ -514,6 +539,7 @@ test_files:
|
|
514
539
|
- spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/test_yaml_files/view.yaml
|
515
540
|
- spec/lib/jenkins_pipeline_builder/fixtures/job_collection/extensions/extension.rb
|
516
541
|
- spec/lib/jenkins_pipeline_builder/fixtures/job_collection/extensions/helpers/my_test_thing_helper.rb
|
542
|
+
- spec/lib/jenkins_pipeline_builder/fixtures/promotions_test/sample_promotion.yaml
|
517
543
|
- spec/lib/jenkins_pipeline_builder/fixtures/sample_creds.json
|
518
544
|
- spec/lib/jenkins_pipeline_builder/fixtures/sample_creds.rb
|
519
545
|
- spec/lib/jenkins_pipeline_builder/fixtures/sample_creds.yaml
|
@@ -525,6 +551,7 @@ test_files:
|
|
525
551
|
- spec/lib/jenkins_pipeline_builder/job_collection_spec.rb
|
526
552
|
- spec/lib/jenkins_pipeline_builder/job_spec.rb
|
527
553
|
- spec/lib/jenkins_pipeline_builder/module_registry_spec.rb
|
554
|
+
- spec/lib/jenkins_pipeline_builder/promotion_spec.rb
|
528
555
|
- spec/lib/jenkins_pipeline_builder/pull_request_generator_spec.rb
|
529
556
|
- spec/lib/jenkins_pipeline_builder/spec_helper.rb
|
530
557
|
- spec/lib/jenkins_pipeline_builder/utils_spec.rb
|