jenkins_pipeline_builder 1.9.0 → 1.9.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +19 -3
- data/Dockerfile +30 -0
- data/jenkins_pipeline_builder.gemspec +4 -6
- data/lib/jenkins_pipeline_builder.rb +1 -1
- data/lib/jenkins_pipeline_builder/cli/list.rb +1 -1
- data/lib/jenkins_pipeline_builder/compiler.rb +1 -1
- data/lib/jenkins_pipeline_builder/extensions.rb +2 -2
- data/lib/jenkins_pipeline_builder/extensions/helpers/job_attributes/parameters_helper.rb +2 -2
- data/lib/jenkins_pipeline_builder/generator.rb +0 -2
- data/lib/jenkins_pipeline_builder/job_collection.rb +3 -3
- data/lib/jenkins_pipeline_builder/utils.rb +4 -0
- data/lib/jenkins_pipeline_builder/version.rb +1 -1
- data/spec/lib/jenkins_pipeline_builder/extensions/builders_spec.rb +5 -5
- metadata +21 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 87a9576e5619c1b5f897d41be693ca14caa9ffdbe9f49e8b1b94c623e03a7ae0
|
4
|
+
data.tar.gz: 78cf57dd67b78112906402f21ffdc4ed503ff5d97810f265dade01dc9f94c405
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3988410416f186c7a0296d737d83a4d52858fff7eeae45860490cd569ad6e95ade748981b53f9c7ab97eab993005dc1b0cbcdd7a68922532f19dc213ea3f674d
|
7
|
+
data.tar.gz: afa5ff7d3301d5b423c0fa7162e131cf40bdfe1a0c77cbc8ba8e592ed2bb8bfac52af44347ea8f4251a94a0f397a2ba38bf72a455911e582d58b5df5130fdd9b
|
data/.rubocop.yml
CHANGED
@@ -15,7 +15,7 @@ Metrics/ClassLength:
|
|
15
15
|
#######
|
16
16
|
# Finalized settings
|
17
17
|
|
18
|
-
|
18
|
+
Layout/LineLength:
|
19
19
|
Max: 120
|
20
20
|
Exclude:
|
21
21
|
- 'spec/lib/jenkins_pipeline_builder/compiler_spec.rb'
|
@@ -32,7 +32,7 @@ Style/Next:
|
|
32
32
|
- 'lib/jenkins_pipeline_builder/extensions/**/*'
|
33
33
|
|
34
34
|
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
35
|
-
|
35
|
+
Naming/VariableName:
|
36
36
|
Exclude:
|
37
37
|
- 'lib/jenkins_pipeline_builder/extensions/**/*'
|
38
38
|
|
@@ -43,4 +43,20 @@ Style/FrozenStringLiteralComment:
|
|
43
43
|
Enabled: false
|
44
44
|
|
45
45
|
Style/SafeNavigation:
|
46
|
-
Enabled: false
|
46
|
+
Enabled: false
|
47
|
+
|
48
|
+
Lint/RaiseException:
|
49
|
+
Enabled: true
|
50
|
+
|
51
|
+
Lint/StructNewOverride:
|
52
|
+
Enabled: true
|
53
|
+
|
54
|
+
Style/HashEachMethods:
|
55
|
+
Enabled: true
|
56
|
+
|
57
|
+
Style/HashTransformKeys:
|
58
|
+
Enabled: true
|
59
|
+
|
60
|
+
Style/HashTransformValues:
|
61
|
+
Enabled: true
|
62
|
+
|
data/Dockerfile
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
FROM centos:centos7
|
2
|
+
|
3
|
+
ENV RUBY_DIR /ruby
|
4
|
+
ENV RUBY_VERSION 2.3.3
|
5
|
+
ENV RUBY_INSTALL $RUBY_DIR/$RUBY_VERSION
|
6
|
+
ENV BUNDLER_VERSION 1.13.3
|
7
|
+
|
8
|
+
RUN yum update -y && \
|
9
|
+
yum install -y make gcc-c++ which wget tar git mysql-devel \
|
10
|
+
gcc patch readline-devel zlib-devel \
|
11
|
+
libyaml-devel libffi-devel openssl-devel \
|
12
|
+
gdbm-devel ncurses-devel libxml-devel bzip2 libxml2-devel
|
13
|
+
|
14
|
+
RUN cd /usr/src && \
|
15
|
+
git clone https://github.com/rbenv/ruby-build.git && \
|
16
|
+
./ruby-build/install.sh && \
|
17
|
+
mkdir -p $RUBY_INSTALL && \
|
18
|
+
/usr/local/bin/ruby-build $RUBY_VERSION $RUBY_INSTALL && \
|
19
|
+
$RUBY_INSTALL/bin/gem install bundler -v $BUNDLER_VERSION && \
|
20
|
+
rm -rf /usr/src/ruby-build
|
21
|
+
|
22
|
+
ENV PATH $RUBY_INSTALL/bin:$PATH
|
23
|
+
|
24
|
+
WORKDIR /src
|
25
|
+
|
26
|
+
RUN gem install jenkins_pipeline_builder
|
27
|
+
|
28
|
+
RUN mkdir -p /srv
|
29
|
+
WORKDIR /srv
|
30
|
+
ENTRYPOINT ["/bin/bash", "-l" ]
|
@@ -18,8 +18,6 @@ automating Job & Pipeline creation from the YAML files checked-in with your appl
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
ENV['NOKOGIRI_USE_SYSTEM_LIBRARIES'] = 'true'
|
22
|
-
|
23
21
|
spec.add_dependency 'activesupport', '~> 4.2.6'
|
24
22
|
spec.add_dependency 'jenkins_api_client', '~> 1.0.0'
|
25
23
|
spec.add_dependency 'minitar'
|
@@ -28,8 +26,8 @@ automating Job & Pipeline creation from the YAML files checked-in with your appl
|
|
28
26
|
spec.add_dependency 'thor', '>= 0.18.0'
|
29
27
|
|
30
28
|
spec.add_development_dependency 'bump'
|
31
|
-
spec.add_development_dependency 'byebug'
|
32
|
-
spec.add_development_dependency 'equivalent-xml'
|
29
|
+
spec.add_development_dependency 'byebug', '= 11.0.1' # last version with compatibility with ruby 2.3.x
|
30
|
+
spec.add_development_dependency 'equivalent-xml', '= 0.6.0' # last version with compatibility with ruby 2.3.x
|
33
31
|
spec.add_development_dependency 'gem-release'
|
34
32
|
spec.add_development_dependency 'json'
|
35
33
|
spec.add_development_dependency 'kwalify'
|
@@ -37,8 +35,8 @@ automating Job & Pipeline creation from the YAML files checked-in with your appl
|
|
37
35
|
spec.add_development_dependency 'rake'
|
38
36
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
39
37
|
spec.add_development_dependency 'rspec_junit_formatter'
|
40
|
-
spec.add_development_dependency 'rubocop'
|
41
|
-
spec.add_development_dependency 'simplecov'
|
38
|
+
spec.add_development_dependency 'rubocop', '= 0.81' # last version with compatibility with ruby 2.3.x
|
39
|
+
spec.add_development_dependency 'simplecov', '= 0.17.1' # last version with compatibility with ruby 2.3.x
|
42
40
|
spec.add_development_dependency 'simplecov-rcov'
|
43
41
|
spec.add_development_dependency 'webmock', '~> 1.0'
|
44
42
|
spec.add_development_dependency 'yard'
|
@@ -83,7 +83,7 @@ require 'jenkins_pipeline_builder/extensions'
|
|
83
83
|
require 'jenkins_pipeline_builder/extension_dsl'
|
84
84
|
require 'jenkins_pipeline_builder/extension_set'
|
85
85
|
require 'jenkins_pipeline_builder/extensions/helpers/extension_helper'
|
86
|
-
Dir[File.join(File.dirname(__FILE__), 'jenkins_pipeline_builder/extensions/helpers/**/*.rb')].each do |file|
|
86
|
+
Dir[File.join(File.dirname(__FILE__), 'jenkins_pipeline_builder/extensions/helpers/**/*.rb')].sort.each do |file|
|
87
87
|
require file
|
88
88
|
end
|
89
89
|
|
@@ -23,7 +23,7 @@
|
|
23
23
|
module JenkinsPipelineBuilder
|
24
24
|
module CLI
|
25
25
|
class List < Thor
|
26
|
-
JenkinsPipelineBuilder.registry.entries.
|
26
|
+
JenkinsPipelineBuilder.registry.entries.each_key do |entry|
|
27
27
|
desc entry, "List all #{entry}"
|
28
28
|
define_method(entry) do
|
29
29
|
entries = JenkinsPipelineBuilder.registry.registry[:job][entry]
|
@@ -37,7 +37,7 @@ module JenkinsPipelineBuilder
|
|
37
37
|
parameters: []
|
38
38
|
}.freeze
|
39
39
|
|
40
|
-
EXT_METHODS.
|
40
|
+
EXT_METHODS.each_key do |method_name|
|
41
41
|
define_method method_name do |value = nil|
|
42
42
|
return instance_variable_get("@#{method_name}") if value.nil?
|
43
43
|
|
@@ -90,7 +90,7 @@ module JenkinsPipelineBuilder
|
|
90
90
|
|
91
91
|
def errors
|
92
92
|
errors = {}
|
93
|
-
EXT_METHODS.
|
93
|
+
EXT_METHODS.each_key do |name|
|
94
94
|
errors[name] = 'Must be set' if send(name).nil?
|
95
95
|
end
|
96
96
|
errors
|
@@ -1,5 +1,5 @@
|
|
1
1
|
class ParametersHelper < ExtensionHelper
|
2
|
-
# rubocop:disable CyclomaticComplexity
|
2
|
+
# rubocop:disable Metrics/CyclomaticComplexity
|
3
3
|
def param_type(param)
|
4
4
|
case param[:type]
|
5
5
|
when 'string'
|
@@ -18,5 +18,5 @@ class ParametersHelper < ExtensionHelper
|
|
18
18
|
'hudson.model.StringParameterDefinition'
|
19
19
|
end
|
20
20
|
end
|
21
|
-
# rubocop:enable CyclomaticComplexity
|
21
|
+
# rubocop:enable Metrics/CyclomaticComplexity
|
22
22
|
end
|
@@ -56,7 +56,6 @@ module JenkinsPipelineBuilder
|
|
56
56
|
publish(project_name || job_collection.projects.first[:name])
|
57
57
|
end
|
58
58
|
|
59
|
-
# rubocop:disable Metrics/AbcSize
|
60
59
|
def pull_request(path, project_name, base_branch_only = false)
|
61
60
|
logger.info "Pull Request Generator Running from path #{path}"
|
62
61
|
load_job_collection path unless job_collection.loaded?
|
@@ -73,7 +72,6 @@ module JenkinsPipelineBuilder
|
|
73
72
|
end
|
74
73
|
errors.empty?
|
75
74
|
end
|
76
|
-
# rubocop:enable Metrics/AbcSize
|
77
75
|
|
78
76
|
def file(path, project_name)
|
79
77
|
logger.info "Generating files from path #{path}"
|
@@ -75,8 +75,8 @@ module JenkinsPipelineBuilder
|
|
75
75
|
hash.each do |section|
|
76
76
|
load_section section, remote
|
77
77
|
end
|
78
|
-
rescue StandardError =>
|
79
|
-
raise CustomErrors::ParseError.new
|
78
|
+
rescue StandardError => e
|
79
|
+
raise CustomErrors::ParseError.new e.message, path
|
80
80
|
end
|
81
81
|
|
82
82
|
def load_section(section, remote)
|
@@ -122,7 +122,7 @@ module JenkinsPipelineBuilder
|
|
122
122
|
|
123
123
|
logger.info "Loading extensions from folder #{path}"
|
124
124
|
logger.info Dir.glob("#{path}/*.rb").inspect
|
125
|
-
Dir.glob("#{path}/**/*.rb").each do |file|
|
125
|
+
Dir.glob("#{path}/**/*.rb").sort.each do |file|
|
126
126
|
logger.info "Loaded #{file}"
|
127
127
|
require file
|
128
128
|
end
|
@@ -33,12 +33,16 @@ module JenkinsPipelineBuilder
|
|
33
33
|
def self.symbolize_keys_deep!(to_symbolize)
|
34
34
|
return unless to_symbolize.is_a?(Hash)
|
35
35
|
|
36
|
+
# This lint is disabled here because each_key requires that you not add or remove keys
|
37
|
+
# during iteration, which apparently this block does...
|
38
|
+
# rubocop:disable Style/HashEachMethods
|
36
39
|
to_symbolize.keys.each do |k|
|
37
40
|
ks = k.respond_to?(:to_sym) ? k.to_sym : k
|
38
41
|
to_symbolize[ks] = to_symbolize.delete k # Preserve order even when k == ks
|
39
42
|
symbolize_keys_deep! to_symbolize[ks] if to_symbolize[ks].is_a? Hash
|
40
43
|
to_symbolize[ks].each { |item| symbolize_keys_deep!(item) } if to_symbolize[ks].is_a?(Array)
|
41
44
|
end
|
45
|
+
# rubocop:enable Style/HashEachMethods
|
42
46
|
end
|
43
47
|
|
44
48
|
def self.symbolize_with_empty_hash!(array_of_maybe_str)
|
@@ -329,9 +329,9 @@ describe 'builders' do
|
|
329
329
|
|
330
330
|
begin
|
331
331
|
JenkinsPipelineBuilder.registry.traverse_registry_path('job', params, @n_xml)
|
332
|
-
rescue RuntimeError =>
|
333
|
-
puts "Caught error #{
|
334
|
-
error =
|
332
|
+
rescue RuntimeError => e
|
333
|
+
puts "Caught error #{e}"
|
334
|
+
error = e.to_s
|
335
335
|
end
|
336
336
|
builder = @n_xml.root.children.first
|
337
337
|
expect(builder.name).to match 'hudson.plugins.groovy.SystemGroovy'
|
@@ -407,8 +407,8 @@ describe 'builders' do
|
|
407
407
|
)
|
408
408
|
begin
|
409
409
|
JenkinsPipelineBuilder.registry.traverse_registry_path('job', params, @n_xml)
|
410
|
-
rescue RuntimeError =>
|
411
|
-
puts 'Runtime Error: ' +
|
410
|
+
rescue RuntimeError => e
|
411
|
+
puts 'Runtime Error: ' + e.to_s
|
412
412
|
end
|
413
413
|
builder = @n_xml.root.children.first
|
414
414
|
expect(builder.name).to match 'jenkins.plugins.nodejs.NodeJsCommandInterpreter'
|
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: 1.9.
|
4
|
+
version: 1.9.1
|
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:
|
12
|
+
date: 2020-05-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -113,30 +113,30 @@ dependencies:
|
|
113
113
|
name: byebug
|
114
114
|
requirement: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
|
-
- -
|
116
|
+
- - '='
|
117
117
|
- !ruby/object:Gem::Version
|
118
|
-
version:
|
118
|
+
version: 11.0.1
|
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
|
-
version:
|
125
|
+
version: 11.0.1
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
127
|
name: equivalent-xml
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
129
129
|
requirements:
|
130
|
-
- -
|
130
|
+
- - '='
|
131
131
|
- !ruby/object:Gem::Version
|
132
|
-
version:
|
132
|
+
version: 0.6.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
|
-
version:
|
139
|
+
version: 0.6.0
|
140
140
|
- !ruby/object:Gem::Dependency
|
141
141
|
name: gem-release
|
142
142
|
requirement: !ruby/object:Gem::Requirement
|
@@ -239,30 +239,30 @@ dependencies:
|
|
239
239
|
name: rubocop
|
240
240
|
requirement: !ruby/object:Gem::Requirement
|
241
241
|
requirements:
|
242
|
-
- -
|
242
|
+
- - '='
|
243
243
|
- !ruby/object:Gem::Version
|
244
|
-
version: '0'
|
244
|
+
version: '0.81'
|
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
|
-
version: '0'
|
251
|
+
version: '0.81'
|
252
252
|
- !ruby/object:Gem::Dependency
|
253
253
|
name: simplecov
|
254
254
|
requirement: !ruby/object:Gem::Requirement
|
255
255
|
requirements:
|
256
|
-
- -
|
256
|
+
- - '='
|
257
257
|
- !ruby/object:Gem::Version
|
258
|
-
version:
|
258
|
+
version: 0.17.1
|
259
259
|
type: :development
|
260
260
|
prerelease: false
|
261
261
|
version_requirements: !ruby/object:Gem::Requirement
|
262
262
|
requirements:
|
263
|
-
- -
|
263
|
+
- - '='
|
264
264
|
- !ruby/object:Gem::Version
|
265
|
-
version:
|
265
|
+
version: 0.17.1
|
266
266
|
- !ruby/object:Gem::Dependency
|
267
267
|
name: simplecov-rcov
|
268
268
|
requirement: !ruby/object:Gem::Requirement
|
@@ -339,6 +339,7 @@ files:
|
|
339
339
|
- ".ruby-version"
|
340
340
|
- ".simplecov"
|
341
341
|
- ".travis.yml"
|
342
|
+
- Dockerfile
|
342
343
|
- Gemfile
|
343
344
|
- LICENSE
|
344
345
|
- README.md
|
@@ -483,7 +484,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
483
484
|
- !ruby/object:Gem::Version
|
484
485
|
version: '0'
|
485
486
|
requirements: []
|
486
|
-
|
487
|
+
rubyforge_project:
|
488
|
+
rubygems_version: 2.7.7
|
487
489
|
signing_key:
|
488
490
|
specification_version: 4
|
489
491
|
summary: This gem is will boostrap your Jenkins pipelines
|