jenkins_pipeline_builder 1.9.0 → 1.9.1
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/.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
|