jenkins_pipeline_builder 0.5.2 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.rubocop.yml +28 -43
- data/{spec/unit_tests/spec_helper.rb → .simplecov} +2 -15
- data/README.md +66 -11
- data/Rakefile +1 -25
- data/bin/generate +0 -1
- data/jenkins_pipeline_builder.gemspec +6 -6
- data/lib/jenkins_pipeline_builder.rb +14 -8
- data/lib/jenkins_pipeline_builder/builders.rb +207 -155
- data/lib/jenkins_pipeline_builder/cli/base.rb +1 -1
- data/lib/jenkins_pipeline_builder/cli/describe.rb +12 -8
- data/lib/jenkins_pipeline_builder/cli/list.rb +7 -7
- data/lib/jenkins_pipeline_builder/compiler.rb +62 -49
- data/lib/jenkins_pipeline_builder/extensions.rb +108 -0
- data/lib/jenkins_pipeline_builder/generator.rb +209 -160
- data/lib/jenkins_pipeline_builder/job_builder.rb +174 -105
- data/lib/jenkins_pipeline_builder/module_registry.rb +43 -59
- data/lib/jenkins_pipeline_builder/publishers.rb +166 -93
- data/lib/jenkins_pipeline_builder/pull_request.rb +7 -7
- data/lib/jenkins_pipeline_builder/triggers.rb +63 -40
- data/lib/jenkins_pipeline_builder/utils.rb +10 -10
- data/lib/jenkins_pipeline_builder/version.rb +1 -1
- data/lib/jenkins_pipeline_builder/view.rb +94 -123
- data/lib/jenkins_pipeline_builder/wrappers.rb +163 -96
- data/spec/lib/jenkins_pipeline_builder/compiler_spec.rb +31 -0
- data/spec/lib/jenkins_pipeline_builder/extensions_spec.rb +145 -0
- data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/pullrequest_pipeline/PullRequest-10-SampleJob.yaml +2 -0
- data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/pullrequest_pipeline/PullRequest-40-PullRequestGenerator.yaml +12 -0
- data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/pullrequest_pipeline/project.yaml +12 -0
- data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/sample_pipeline/SamplePipeline-10-Commit.yaml +3 -0
- data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/sample_pipeline/SamplePipeline-20-Acceptance.yaml +3 -0
- data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/sample_pipeline/SamplePipeline-30-Release.yaml +3 -0
- data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/sample_pipeline/project.yaml +12 -0
- data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/sample_pipeline/view.yaml +5 -0
- data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/template_pipeline/jobs.tar.gz +0 -0
- data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/template_pipeline/project.yaml +15 -0
- data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/test_job.xml +48 -0
- data/spec/lib/jenkins_pipeline_builder/fixtures/view_test/duplicate_view.yaml +4 -0
- data/spec/lib/jenkins_pipeline_builder/fixtures/view_test/parent_view.yaml +9 -0
- data/spec/lib/jenkins_pipeline_builder/fixtures/view_test/regular_view.yaml +5 -0
- data/spec/lib/jenkins_pipeline_builder/generator_spec.rb +165 -0
- data/spec/lib/jenkins_pipeline_builder/module_registry_spec.rb +147 -0
- data/spec/lib/jenkins_pipeline_builder/pull_request_spec.rb +47 -0
- data/spec/lib/jenkins_pipeline_builder/spec_helper.rb +25 -0
- data/spec/lib/jenkins_pipeline_builder/utils_spec.rb +22 -0
- data/spec/lib/jenkins_pipeline_builder/view_spec.rb +54 -0
- metadata +54 -136
- data/lib/jenkins_pipeline_builder/extendable.rb +0 -42
- data/lib/jenkins_pipeline_builder/xml_helper.rb +0 -40
- data/spec/func_tests/spec_helper.rb +0 -18
- data/spec/func_tests/view_spec.rb +0 -90
- data/spec/unit_tests/compiler_spec.rb +0 -20
- data/spec/unit_tests/fixtures/files/Job-Build-Flow.xml +0 -57
- data/spec/unit_tests/fixtures/files/Job-Build-Flow.yaml +0 -22
- data/spec/unit_tests/fixtures/files/Job-Build-Maven.xml +0 -129
- data/spec/unit_tests/fixtures/files/Job-Build-Maven.yaml +0 -31
- data/spec/unit_tests/fixtures/files/Job-DSL.yaml +0 -14
- data/spec/unit_tests/fixtures/files/Job-DSL1.xml +0 -27
- data/spec/unit_tests/fixtures/files/Job-DSL2.xml +0 -25
- data/spec/unit_tests/fixtures/files/Job-Gem-Build.xml +0 -142
- data/spec/unit_tests/fixtures/files/Job-Gem-Build.yaml +0 -43
- data/spec/unit_tests/fixtures/files/Job-Generate-From-Template.xml +0 -32
- data/spec/unit_tests/fixtures/files/Job-Generate-From-Template.yaml +0 -8
- data/spec/unit_tests/fixtures/files/Job-Multi-Project.xml +0 -134
- data/spec/unit_tests/fixtures/files/Job-Multi-Project.yaml +0 -49
- data/spec/unit_tests/fixtures/files/archive_artifact.xml +0 -23
- data/spec/unit_tests/fixtures/files/archive_artifact.yaml +0 -5
- data/spec/unit_tests/fixtures/files/choice_parameter.xml +0 -39
- data/spec/unit_tests/fixtures/files/choice_parameter.yaml +0 -14
- data/spec/unit_tests/fixtures/files/concurrent_build.xml +0 -17
- data/spec/unit_tests/fixtures/files/concurrent_build.yaml +0 -4
- data/spec/unit_tests/fixtures/files/copy_artifact.xml +0 -30
- data/spec/unit_tests/fixtures/files/copy_artifact.yaml +0 -14
- data/spec/unit_tests/fixtures/files/discard_old.xml +0 -17
- data/spec/unit_tests/fixtures/files/discard_old.yaml +0 -8
- data/spec/unit_tests/fixtures/files/downstream.xml +0 -36
- data/spec/unit_tests/fixtures/files/downstream.yaml +0 -13
- data/spec/unit_tests/fixtures/files/downstream_blocking.xml +0 -19
- data/spec/unit_tests/fixtures/files/downstream_blocking.yaml +0 -15
- data/spec/unit_tests/fixtures/files/git_include_exclude.xml +0 -53
- data/spec/unit_tests/fixtures/files/git_include_exclude.yaml +0 -8
- data/spec/unit_tests/fixtures/files/groovy_postbuild.xml +0 -29
- data/spec/unit_tests/fixtures/files/groovy_postbuild.yaml +0 -9
- data/spec/unit_tests/fixtures/files/periodic_build.xml +0 -21
- data/spec/unit_tests/fixtures/files/periodic_build.yaml +0 -5
- data/spec/unit_tests/fixtures/files/post_build_script.xml +0 -28
- data/spec/unit_tests/fixtures/files/post_build_script.yaml +0 -11
- data/spec/unit_tests/fixtures/files/prepare_environment.xml +0 -17
- data/spec/unit_tests/fixtures/files/prepare_environment.yaml +0 -7
- data/spec/unit_tests/fixtures/files/project.yaml +0 -15
- data/spec/unit_tests/fixtures/files/properties_file.xml +0 -27
- data/spec/unit_tests/fixtures/files/properties_file.yaml +0 -8
- data/spec/unit_tests/fixtures/files/remote_job.xml +0 -18
- data/spec/unit_tests/fixtures/files/remote_job.yaml +0 -19
- data/spec/unit_tests/fixtures/files/rvm05.xml +0 -26
- data/spec/unit_tests/fixtures/files/rvm05.yaml +0 -5
- data/spec/unit_tests/fixtures/files/specific_priority.xml +0 -22
- data/spec/unit_tests/fixtures/files/specific_priority.yaml +0 -6
- data/spec/unit_tests/fixtures/files/throttle.xml +0 -17
- data/spec/unit_tests/fixtures/files/throttle.yaml +0 -8
- data/spec/unit_tests/fixtures/files/upstream.xml +0 -17
- data/spec/unit_tests/fixtures/files/upstream.yaml +0 -7
- data/spec/unit_tests/fixtures/pull_request/00.yaml +0 -14
- data/spec/unit_tests/fixtures/pull_request/10.yaml +0 -7
- data/spec/unit_tests/fixtures/pull_request/11.yaml +0 -4
- data/spec/unit_tests/fixtures/pull_request/project.yaml +0 -11
- data/spec/unit_tests/fixtures/templates/external_job.yaml +0 -4
- data/spec/unit_tests/fixtures/templates/project_with_jobs.yaml +0 -25
- data/spec/unit_tests/generator_spec.rb +0 -94
- data/spec/unit_tests/module_registry_spec.rb +0 -16
- data/spec/unit_tests/resolve_dependencies_spec.rb +0 -266
@@ -0,0 +1,12 @@
|
|
1
|
+
- job:
|
2
|
+
name: '{{name}}-40-PullRequestGenerator'
|
3
|
+
job_type: pull_request_generator
|
4
|
+
git_url: '{{git_url}}'
|
5
|
+
git_repo: '{{git_repo}}'
|
6
|
+
git_org: '{{git_org}}'
|
7
|
+
jobs:
|
8
|
+
- '{{name}}-10-SampleJob'
|
9
|
+
builders:
|
10
|
+
- shell_command: |
|
11
|
+
generate -v || gem install jenkins_pipeline_builder
|
12
|
+
generate pipeline -d pull_request pipeline/ PullRequest
|
data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/pullrequest_pipeline/project.yaml
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
- defaults:
|
2
|
+
name: global
|
3
|
+
description: 'Test pipeline for generator_spec.rb'
|
4
|
+
git_url: 'https://github.com'
|
5
|
+
git_org: 'bencentra'
|
6
|
+
git_repo: 'generator_tests'
|
7
|
+
|
8
|
+
- project:
|
9
|
+
name: PullRequest
|
10
|
+
jobs:
|
11
|
+
- '{{name}}-10-SampleJob'
|
12
|
+
- '{{name}}-40-PullRequestGenerator'
|
Binary file
|
data/spec/lib/jenkins_pipeline_builder/fixtures/generator_tests/template_pipeline/project.yaml
ADDED
@@ -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/template_pipeline/jobs.tar.gz'
|
8
|
+
templates:
|
9
|
+
- name: test_temp
|
10
|
+
|
11
|
+
- project:
|
12
|
+
name: TemplatePipeline
|
13
|
+
jobs:
|
14
|
+
- '{{name}}-10'
|
15
|
+
- '{{name}}-11'
|
@@ -0,0 +1,48 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<project>
|
3
|
+
<actions/>
|
4
|
+
<description>Jenkins Lab Step 1</description>
|
5
|
+
<keepDependencies>false</keepDependencies>
|
6
|
+
<properties>
|
7
|
+
<jenkins.plugins.hipchat.HipChatNotifier_-HipChatJobProperty plugin="hipchat@0.1.5">
|
8
|
+
<room/>
|
9
|
+
<startNotification>false</startNotification>
|
10
|
+
<notifySuccess>false</notifySuccess>
|
11
|
+
<notifyAborted>false</notifyAborted>
|
12
|
+
<notifyNotBuilt>false</notifyNotBuilt>
|
13
|
+
<notifyUnstable>false</notifyUnstable>
|
14
|
+
<notifyFailure>false</notifyFailure>
|
15
|
+
<notifyBackToNormal>false</notifyBackToNormal>
|
16
|
+
</jenkins.plugins.hipchat.HipChatNotifier_-HipChatJobProperty>
|
17
|
+
<jenkins.advancedqueue.AdvancedQueueSorterJobProperty plugin="PrioritySorter@2.6">
|
18
|
+
<useJobPriority>false</useJobPriority>
|
19
|
+
<priority>-1</priority>
|
20
|
+
</jenkins.advancedqueue.AdvancedQueueSorterJobProperty>
|
21
|
+
<hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@1.8.2">
|
22
|
+
<maxConcurrentPerNode>0</maxConcurrentPerNode>
|
23
|
+
<maxConcurrentTotal>0</maxConcurrentTotal>
|
24
|
+
<throttleEnabled>false</throttleEnabled>
|
25
|
+
<throttleOption>project</throttleOption>
|
26
|
+
</hudson.plugins.throttleconcurrents.ThrottleJobProperty>
|
27
|
+
</properties>
|
28
|
+
<scm class="hudson.scm.NullSCM"/>
|
29
|
+
<canRoam>true</canRoam>
|
30
|
+
<disabled>false</disabled>
|
31
|
+
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
|
32
|
+
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
|
33
|
+
<triggers/>
|
34
|
+
<concurrentBuild>false</concurrentBuild>
|
35
|
+
<builders>
|
36
|
+
<hudson.tasks.Shell>
|
37
|
+
<command>echo "Hello" > artifact.txt</command>
|
38
|
+
</hudson.tasks.Shell>
|
39
|
+
</builders>
|
40
|
+
<publishers>
|
41
|
+
<hudson.tasks.ArtifactArchiver>
|
42
|
+
<artifacts>artifact.txt</artifacts>
|
43
|
+
<latestOnly>false</latestOnly>
|
44
|
+
<allowEmptyArchive>false</allowEmptyArchive>
|
45
|
+
</hudson.tasks.ArtifactArchiver>
|
46
|
+
</publishers>
|
47
|
+
<buildWrappers/>
|
48
|
+
</project>
|
@@ -0,0 +1,165 @@
|
|
1
|
+
require File.expand_path('../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe JenkinsPipelineBuilder::Generator do
|
4
|
+
|
5
|
+
before(:all) do
|
6
|
+
JenkinsPipelineBuilder.credentials = {
|
7
|
+
server_ip: '127.0.0.1',
|
8
|
+
server_port: 8080,
|
9
|
+
username: 'username',
|
10
|
+
password: 'password',
|
11
|
+
log_location: '/dev/null'
|
12
|
+
}
|
13
|
+
JenkinsPipelineBuilder.client
|
14
|
+
@generator = JenkinsPipelineBuilder.generator
|
15
|
+
end
|
16
|
+
|
17
|
+
after(:each) do
|
18
|
+
@generator.debug = false
|
19
|
+
@generator.job_collection = {}
|
20
|
+
@generator.remote_depends = {}
|
21
|
+
@generator.module_registry = JenkinsPipelineBuilder::ModuleRegistry.new
|
22
|
+
JenkinsPipelineBuilder.load_registry
|
23
|
+
end
|
24
|
+
|
25
|
+
describe 'initialized in before(:example)' do
|
26
|
+
it 'creates a new generator' do
|
27
|
+
expect(@generator.job_collection).to be_empty
|
28
|
+
expect(@generator.module_registry).not_to be_nil
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'accepts new jobs into the job_collection' do
|
32
|
+
job_name = 'sample_job'
|
33
|
+
job_type = 'project'
|
34
|
+
job_value = {}
|
35
|
+
@generator.job_collection[job_name] = { name: job_name, type: job_type, value: job_value }
|
36
|
+
expect(@generator.job_collection).not_to be_empty
|
37
|
+
expect(@generator.job_collection[job_name]).not_to be_nil
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe '#debug=' do
|
42
|
+
it 'sets debug mode to false' do
|
43
|
+
@generator.debug = false
|
44
|
+
expect(@generator.debug).to be false
|
45
|
+
expect(@generator.logger.level).to eq(Logger::INFO)
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'sets debug mode to true' do
|
49
|
+
@generator.debug = true
|
50
|
+
expect(@generator.debug).to be true
|
51
|
+
expect(@generator.logger.level).to eq(Logger::DEBUG)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
describe '#client' do
|
56
|
+
it 'returns the singleton JenkinsPipelineBuilder.client object' do
|
57
|
+
expect(@generator.client).to be(JenkinsPipelineBuilder.client)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
describe '#view' do
|
62
|
+
it 'returns a new JenkinsPipelineBuilder::View object' do
|
63
|
+
view = @generator.view
|
64
|
+
expect(view).not_to be_nil
|
65
|
+
# expect(view.generator).to be(@generator)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
describe '#bootstrap' do
|
70
|
+
it 'produces no errors while creating pipeline SamplePipeline with view' do
|
71
|
+
@generator.debug = true
|
72
|
+
job_name = 'SamplePipeline'
|
73
|
+
path = File.expand_path('../fixtures/generator_tests/sample_pipeline', __FILE__)
|
74
|
+
errors = @generator.bootstrap(path, job_name)
|
75
|
+
expect(errors.empty?).to be true
|
76
|
+
Dir["#{job_name}*.xml"].each do |file|
|
77
|
+
File.delete(file)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
it 'produces no errors while creating pipeline TemplatePipeline' do
|
82
|
+
@generator.debug = true
|
83
|
+
job_name = 'TemplatePipeline'
|
84
|
+
path = File.expand_path('../fixtures/generator_tests/template_pipeline', __FILE__)
|
85
|
+
errors = @generator.bootstrap(path, job_name)
|
86
|
+
expect(errors.empty?).to be true
|
87
|
+
Dir["#{job_name}*.xml"].each do |file|
|
88
|
+
File.delete(file)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
# Things to check for:
|
92
|
+
# Fail - Finds duplicate job names (load_job_collection)
|
93
|
+
# Extension fails to register?
|
94
|
+
# resolve_project returns false
|
95
|
+
# Accumulates errors in publish_project/job path
|
96
|
+
it 'produces no errors while creating a job dsl'
|
97
|
+
end
|
98
|
+
|
99
|
+
describe '#pull_request' do
|
100
|
+
it 'produces no errors while creating pipeline PullRequest' do
|
101
|
+
# Dummy data
|
102
|
+
purge = []
|
103
|
+
create = [
|
104
|
+
{
|
105
|
+
name: 'PullRequest-PR1',
|
106
|
+
type: :project,
|
107
|
+
value: {
|
108
|
+
name: 'PullRequest-PR1',
|
109
|
+
jobs: [
|
110
|
+
'{{name}}-10-SampleJob'
|
111
|
+
]
|
112
|
+
}
|
113
|
+
}
|
114
|
+
]
|
115
|
+
jobs = {
|
116
|
+
'{{name}}-10-SampleJob' => {
|
117
|
+
name: '{{name}}-10-SampleJob',
|
118
|
+
type: :job,
|
119
|
+
value: {
|
120
|
+
name: '{{name}}-10-SampleJob',
|
121
|
+
scm_branch: 'origin/pr/2/head',
|
122
|
+
scm_params: {
|
123
|
+
refspec: 'refs/pull/*:refs/remotes/origin/pr/*'
|
124
|
+
}
|
125
|
+
}
|
126
|
+
}
|
127
|
+
}
|
128
|
+
# Run the test
|
129
|
+
@generator.debug = true
|
130
|
+
job_name = 'PullRequest'
|
131
|
+
path = File.expand_path('../fixtures/generator_tests/pullrequest_pipeline', __FILE__)
|
132
|
+
JenkinsPipelineBuilder::PullRequestGenerator.should_receive(:new).once.and_return(
|
133
|
+
double(purge: purge, create: create, jobs: jobs)
|
134
|
+
)
|
135
|
+
success = @generator.pull_request(path, job_name)
|
136
|
+
expect(success).to be_truthy
|
137
|
+
Dir["#{job_name}*.xml"].each do |file|
|
138
|
+
File.delete(file)
|
139
|
+
end
|
140
|
+
end
|
141
|
+
# Things to check for
|
142
|
+
# Fail - no PR job type found
|
143
|
+
# Encounters failure during build process
|
144
|
+
# Fails to purge old PR jobs from Jenkins
|
145
|
+
end
|
146
|
+
|
147
|
+
describe '#dump' do
|
148
|
+
it "writes a job's config XML to a file" do
|
149
|
+
@generator.debug = true
|
150
|
+
job_name = 'test_job'
|
151
|
+
body = ''
|
152
|
+
test_path = File.expand_path('../fixtures/generator_tests', __FILE__)
|
153
|
+
File.open("#{test_path}/#{job_name}.xml", 'r') do |f|
|
154
|
+
f.each_line do |line|
|
155
|
+
body << line
|
156
|
+
end
|
157
|
+
end
|
158
|
+
stub_request(:get, 'http://username:password@127.0.0.1:8080/job/test_job/config.xml')
|
159
|
+
.to_return(status: 200, body: "#{body}", headers: {})
|
160
|
+
@generator.dump(job_name)
|
161
|
+
expect(File.exist?("#{job_name}.xml")).to be true
|
162
|
+
File.delete("#{job_name}.xml")
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
@@ -0,0 +1,147 @@
|
|
1
|
+
require File.expand_path('../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe JenkinsPipelineBuilder::ModuleRegistry do
|
4
|
+
describe '#register' do
|
5
|
+
it 'should return item by a specified path' do
|
6
|
+
|
7
|
+
registry = JenkinsPipelineBuilder::ModuleRegistry.new
|
8
|
+
ext = double
|
9
|
+
allow(ext).to receive(:name).and_return :foo
|
10
|
+
registry.register [:job], ext
|
11
|
+
|
12
|
+
expect(registry.get('job/foo').first.name).to eq :foo
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'registered the builders correctly' do
|
16
|
+
builders = {
|
17
|
+
multi_job: [0],
|
18
|
+
maven3: [0],
|
19
|
+
shell_command: [0],
|
20
|
+
inject_vars_file: [0],
|
21
|
+
blocking_downstream: [0],
|
22
|
+
remote_job: [0],
|
23
|
+
copy_artifact: [0]
|
24
|
+
}
|
25
|
+
registry = JenkinsPipelineBuilder.registry.registry
|
26
|
+
expect(registry[:job][:builders].size).to eq builders.size
|
27
|
+
builders.each do |builder, versions|
|
28
|
+
expect(registry[:job][:builders]).to have_key builder
|
29
|
+
|
30
|
+
versions.each do |version|
|
31
|
+
expect(registry[:job][:builders][builder]).to have_min_version version
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
it 'registered the triggers correctly' do
|
36
|
+
triggers = {
|
37
|
+
git_push: [0],
|
38
|
+
scm_polling: [0],
|
39
|
+
periodic_build: [0],
|
40
|
+
upstream: [0]
|
41
|
+
}
|
42
|
+
registry = JenkinsPipelineBuilder.registry.registry
|
43
|
+
expect(registry[:job][:triggers].size).to eq triggers.size
|
44
|
+
triggers.each do |trigger, versions|
|
45
|
+
expect(registry[:job][:triggers]).to have_key trigger
|
46
|
+
|
47
|
+
versions.each do |version|
|
48
|
+
expect(registry[:job][:triggers][trigger]).to have_min_version version
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
it 'registered the job_attributes correctly' do
|
53
|
+
job_attributes = {
|
54
|
+
description: [0],
|
55
|
+
scm_params: [0],
|
56
|
+
hipchat: [0],
|
57
|
+
priority: [0],
|
58
|
+
parameters: [0],
|
59
|
+
discard_old: [0],
|
60
|
+
throttle: [0],
|
61
|
+
prepare_environment: [0],
|
62
|
+
concurrent_build: [0]
|
63
|
+
}
|
64
|
+
registry = JenkinsPipelineBuilder.registry.registry
|
65
|
+
# There are 4 sub types so, we don't count those
|
66
|
+
expect(registry[:job].size - 4).to eq job_attributes.size
|
67
|
+
job_attributes.each do |job_attribute, versions|
|
68
|
+
expect(registry[:job]).to have_key job_attribute
|
69
|
+
|
70
|
+
versions.each do |version|
|
71
|
+
expect(registry[:job][job_attribute]).to have_min_version version
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
it 'registered the publishers correctly' do
|
76
|
+
publishers = {
|
77
|
+
description_setter: [0],
|
78
|
+
downstream: [0],
|
79
|
+
hipchat: [0],
|
80
|
+
git: [0],
|
81
|
+
junit_result: [0],
|
82
|
+
coverage_result: [0],
|
83
|
+
post_build_script: [0],
|
84
|
+
groovy_postbuild: [0],
|
85
|
+
archive_artifact: [0],
|
86
|
+
email_notifications: [0]
|
87
|
+
}
|
88
|
+
registry = JenkinsPipelineBuilder.registry.registry
|
89
|
+
expect(registry[:job][:publishers].size).to eq publishers.size
|
90
|
+
publishers.each do |publisher, versions|
|
91
|
+
expect(registry[:job][:publishers]).to have_key publisher
|
92
|
+
|
93
|
+
versions.each do |version|
|
94
|
+
expect(registry[:job][:publishers][publisher]).to have_min_version version
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
it 'registered the wrappers correctly' do
|
99
|
+
wrappers = {
|
100
|
+
ansicolor: [0],
|
101
|
+
timestamp: [0],
|
102
|
+
name: [0],
|
103
|
+
rvm: ['0', '0.5'],
|
104
|
+
inject_passwords: [0],
|
105
|
+
inject_env_var: [0],
|
106
|
+
artifactory: [0],
|
107
|
+
maven3artifactory: [0]
|
108
|
+
}
|
109
|
+
registry = JenkinsPipelineBuilder.registry.registry
|
110
|
+
expect(registry[:job][:wrappers].size).to eq wrappers.size
|
111
|
+
wrappers.each do |wrapper, versions|
|
112
|
+
expect(registry[:job][:wrappers]).to have_key wrapper
|
113
|
+
|
114
|
+
versions.each do |version|
|
115
|
+
expect(registry[:job][:wrappers][wrapper]).to have_min_version version
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
describe '#initialize' do
|
121
|
+
|
122
|
+
end
|
123
|
+
|
124
|
+
describe '#entries' do
|
125
|
+
|
126
|
+
end
|
127
|
+
|
128
|
+
describe '#get' do
|
129
|
+
|
130
|
+
end
|
131
|
+
|
132
|
+
describe '#get_by_path_collection' do
|
133
|
+
|
134
|
+
end
|
135
|
+
|
136
|
+
describe '#traverse_registry_path' do
|
137
|
+
|
138
|
+
end
|
139
|
+
|
140
|
+
describe '#traverse_registry' do
|
141
|
+
|
142
|
+
end
|
143
|
+
|
144
|
+
describe '#execute_extension' do
|
145
|
+
end
|
146
|
+
|
147
|
+
end
|