chefrepo-builder 0.9.20 → 0.9.22

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d51ee77d78abab279df1adcfdf118a24c6de4382
4
- data.tar.gz: 3cacf5b082da39818193aea7e5fa86d4480e1fd1
3
+ metadata.gz: d19ad55aace6aff0400b888ba5dae68edad76811
4
+ data.tar.gz: c2fbec785ac2cb9f0b76f01d2a6b2596c5c7b7ff
5
5
  SHA512:
6
- metadata.gz: 20626569f036191ebc7b9f7bc2757e001dbd96eb8a0e9c1ac2f7b075ba84c7627700b8dea1eb6f26937e66d6c3906fcdad2de33dc695d70e0fc0c61f2d046a74
7
- data.tar.gz: 46b1b364fe6b0b6f2819a0410dbac37b8ac5283b66e4dd3d53a4c861c8c530eab798d8a8d9725b51fa83574d9ad2a11d228fcfd1448d4db542cfd8d7597948b6
6
+ metadata.gz: 6c24d93a3f097afbe85748dec914018b4e3c96f56fbb1c2ac60e484bc68ea1d44ec22aba2884d2029de905e4c95f61a1962cc8101113ac8a16ee23ade0eaefa4
7
+ data.tar.gz: 93e9c1e5b00ac6289c5e34d73670480b794bdd76344749a6b8c77e02396e664a7d5ae2aed8651df13606c26fc5d66b6a492cb35b68478cd9f1205c6326a8bba1
data/Gemfile.lock ADDED
@@ -0,0 +1,146 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ chefrepo-builder (0.9.22)
5
+ cicd-builder (>= 0.9.14)
6
+ json (= 1.8.1)
7
+
8
+ PATH
9
+ remote: ../cicd-builder
10
+ specs:
11
+ cicd-builder (0.9.25)
12
+ artifactory (>= 2.2.1, < 2.3)
13
+ awesome_print (= 1.2.0, < 1.3)
14
+ aws-sdk (>= 2.0, < 2.1)
15
+ chef (>= 11.18.2, < 12)
16
+ git (>= 1.2.7, < 1.3)
17
+ inifile (>= 3.0.0, < 3.1)
18
+ json (= 1.8.1, < 1.9)
19
+ logging (>= 1.8.2, < 1.9)
20
+ semverse (>= 1.2.1, < 1.3)
21
+ yajl-ruby (>= 1.2.1, < 1.3)
22
+
23
+ GEM
24
+ remote: https://rubygems.org/
25
+ specs:
26
+ artifactory (2.2.1)
27
+ awesome_print (1.2.0)
28
+ aws-sdk (2.0.28)
29
+ aws-sdk-resources (= 2.0.28)
30
+ aws-sdk-core (2.0.28)
31
+ builder (~> 3.0)
32
+ jmespath (~> 1.0)
33
+ multi_json (~> 1.0)
34
+ multi_xml (~> 0.5)
35
+ aws-sdk-resources (2.0.28)
36
+ aws-sdk-core (= 2.0.28)
37
+ builder (3.2.2)
38
+ chef (11.18.6)
39
+ chef-zero (~> 2.2, >= 2.2.1)
40
+ diff-lcs (~> 1.2, >= 1.2.4)
41
+ erubis (~> 2.7)
42
+ ffi-yajl (~> 1.2)
43
+ highline (~> 1.6, >= 1.6.9)
44
+ mime-types (~> 1.16)
45
+ mixlib-authentication (~> 1.3)
46
+ mixlib-cli (~> 1.4)
47
+ mixlib-config (~> 2.0)
48
+ mixlib-log (~> 1.3)
49
+ mixlib-shellout (~> 1.4)
50
+ net-ssh (~> 2.6)
51
+ net-ssh-multi (~> 1.1)
52
+ ohai (~> 7.4)
53
+ plist (~> 3.1.0)
54
+ pry (~> 0.9)
55
+ rest-client (>= 1.0.4, <= 1.6.7)
56
+ chef-zero (2.2.1)
57
+ ffi-yajl (~> 1.1)
58
+ hashie (~> 2.0)
59
+ mixlib-log (~> 1.3)
60
+ rack
61
+ coderay (1.1.0)
62
+ cucumber (0.10.7)
63
+ builder (>= 2.1.2)
64
+ diff-lcs (>= 1.1.2)
65
+ gherkin (~> 2.4.0)
66
+ json (>= 1.4.6)
67
+ term-ansicolor (>= 1.0.5)
68
+ diff-lcs (1.2.5)
69
+ erubis (2.7.0)
70
+ ffi (1.9.6)
71
+ ffi-yajl (1.4.0)
72
+ ffi (~> 1.5)
73
+ libyajl2 (~> 1.2)
74
+ gherkin (2.4.21)
75
+ json (>= 1.4.6)
76
+ git (1.2.9.1)
77
+ hashie (2.1.2)
78
+ highline (1.7.1)
79
+ inifile (3.0.0)
80
+ ipaddress (0.8.0)
81
+ jmespath (1.0.2)
82
+ multi_json (~> 1.0)
83
+ json (1.8.1)
84
+ json_pure (1.8.1)
85
+ libyajl2 (1.2.0)
86
+ little-plugger (1.1.3)
87
+ logging (1.8.2)
88
+ little-plugger (>= 1.1.3)
89
+ multi_json (>= 1.8.4)
90
+ method_source (0.8.2)
91
+ mime-types (1.25.1)
92
+ mixlib-authentication (1.3.0)
93
+ mixlib-log
94
+ mixlib-cli (1.5.0)
95
+ mixlib-config (2.1.0)
96
+ mixlib-log (1.6.0)
97
+ mixlib-shellout (1.6.1)
98
+ multi_json (1.10.1)
99
+ multi_xml (0.5.5)
100
+ net-ssh (2.9.2)
101
+ net-ssh-gateway (1.2.0)
102
+ net-ssh (>= 2.6.5)
103
+ net-ssh-multi (1.2.0)
104
+ net-ssh (>= 2.6.5)
105
+ net-ssh-gateway (>= 1.2.0)
106
+ ohai (7.4.1)
107
+ ffi (~> 1.9)
108
+ ffi-yajl (~> 1.1)
109
+ ipaddress
110
+ mime-types (~> 1.16)
111
+ mixlib-cli
112
+ mixlib-config (~> 2.0)
113
+ mixlib-log
114
+ mixlib-shellout (~> 1.2)
115
+ systemu (~> 2.6.4)
116
+ wmi-lite (~> 1.0)
117
+ plist (3.1.0)
118
+ pry (0.10.1)
119
+ coderay (~> 1.1.0)
120
+ method_source (~> 0.8.1)
121
+ slop (~> 3.4)
122
+ rack (1.6.0)
123
+ rake (10.3.2)
124
+ rest-client (1.6.7)
125
+ mime-types (>= 1.16)
126
+ rubygems-tasks (0.2.4)
127
+ semverse (1.2.1)
128
+ slop (3.6.0)
129
+ systemu (2.6.4)
130
+ term-ansicolor (1.3.0)
131
+ tins (~> 1.0)
132
+ tins (1.3.3)
133
+ wmi-lite (1.0.0)
134
+ yajl-ruby (1.2.1)
135
+
136
+ PLATFORMS
137
+ ruby
138
+
139
+ DEPENDENCIES
140
+ bundler (~> 1.6)
141
+ chefrepo-builder!
142
+ cicd-builder!
143
+ cucumber (~> 0.10.2)
144
+ json_pure
145
+ rake
146
+ rubygems-tasks (>= 0.2, < 1.1)
data/bin/chefrepo CHANGED
@@ -30,4 +30,4 @@ $:.unshift(add_path)
30
30
  require 'cicd/builder/chefrepo'
31
31
 
32
32
  # =====================================================================================================================
33
- exit CiCd::Builder::ChefRepoBuilder.new().run()
33
+ exit CiCd::Builder::ChefRepo::Runner.new().run()
@@ -20,8 +20,8 @@ Gem::Specification.new do |gem|
20
20
  gem.add_dependency 'cicd-builder', '>= 0.9.14'
21
21
  gem.add_dependency 'json', '= 1.8.1'
22
22
 
23
- gem.add_development_dependency 'bundler', '~> 1.0'
24
- gem.add_development_dependency 'rake', '~> 10.3'
25
- gem.add_development_dependency 'rubygems-tasks', '~> 0.2'
26
- gem.add_development_dependency 'cucumber', '~> 0'
23
+ gem.add_development_dependency 'bundler', '>= 1.6', '< 1.7'
24
+ gem.add_development_dependency 'rake', '>= 10.3', '< 11'
25
+ gem.add_development_dependency 'rubygems-tasks', '>= 0.2', '< 1.1'
26
+ gem.add_development_dependency 'cucumber', '>= 0.10.7', '< 0.11'
27
27
  end
@@ -8,45 +8,45 @@ module CiCd
8
8
 
9
9
  require 'cicd/builder/chefrepo/version'
10
10
 
11
- #noinspection ALL
12
- class ChefRepoBuilder < BuilderBase
11
+ module ChefRepo
12
+ class Runner < BuilderBase
13
13
 
14
- def initialize()
15
- super
16
- @default_options[:builder] = VERSION
17
- end
14
+ def initialize()
15
+ super
16
+ @default_options[:builder] = VERSION
17
+ end
18
18
 
19
- # ---------------------------------------------------------------------------------------------------------------
20
- def getBuilderVersion
21
- {
22
- version: VERSION,
23
- major: MAJOR,
24
- minor: MINOR,
25
- patch: PATCH,
26
- }
27
- end
19
+ # ---------------------------------------------------------------------------------------------------------------
20
+ def getBuilderVersion
21
+ {
22
+ version: VERSION,
23
+ major: MAJOR,
24
+ minor: MINOR,
25
+ patch: PATCH,
26
+ }
27
+ end
28
28
 
29
- # ---------------------------------------------------------------------------------------------------------------
30
- def checkEnvironment()
31
- # We fake some of the keys that the will need later ...
32
- faked = {}
33
- %w(VERSION RELEASE).each do |key|
34
- unless ENV.has_key?(key)
35
- ENV[key]="faked"
36
- faked[key] = true
29
+ # ---------------------------------------------------------------------------------------------------------------
30
+ def checkEnvironment()
31
+ # We fake some of the keys that the will need later ...
32
+ faked = {}
33
+ %w(VERSION RELEASE VARIANT).each do |key|
34
+ unless ENV.has_key?(key)
35
+ ENV[key]='faked'
36
+ faked[key] = true
37
+ end
37
38
  end
39
+ ret = super
40
+ faked.each do |k,v|
41
+ ENV.delete k
42
+ end
43
+ ret
38
44
  end
39
- ret = super
40
- faked.each do |k,v|
41
- ENV.delete k
42
- end
43
- ret
44
- end
45
45
 
46
- # ---------------------------------------------------------------------------------------------------------------
47
- def run()
48
- $stdout.write("ChefRepoBuilder v#{CiCd::Builder::ChefRepo::VERSION}\n")
49
- @default_options[:env_keys] = %w(
46
+ # ---------------------------------------------------------------------------------------------------------------
47
+ def setup()
48
+ $stdout.write("ChefRepoBuilder v#{CiCd::Builder::ChefRepo::VERSION}\n")
49
+ @default_options[:env_keys] << %w(
50
50
  JENKINS_HOME
51
51
  BUILD_NUMBER
52
52
  JOB_NAME
@@ -54,88 +54,97 @@ module CiCd
54
54
 
55
55
  PROJECT_NAME
56
56
  REPO_DIR
57
- REPO_PARTS
58
57
 
59
58
  VERSION
60
59
  RELEASE
61
-
62
- AWS_S3_BUCKET
60
+ VARIANT
63
61
  )
64
- @default_options[:gen] = '1.0.0'
65
- if 0 == super
66
- # noop
62
+ # @default_options[:gen] = '1.0.0'
63
+ super
67
64
  end
68
65
 
69
- @vars[:return_code]
70
- end
71
-
72
- # ---------------------------------------------------------------------------------------------------------------
73
- def getVars()
74
- super
75
- @vars[:return_code]
76
- end
77
-
78
- # ---------------------------------------------------------------------------------------------------------------
79
- def prepareBuild()
80
- super
81
- local = {}
82
- %w(artifacts latest).each do |dir|
83
- local[dir] = "#{ENV['WORKSPACE']}/#{dir}"
84
- unless File.directory?(dir)
85
- Dir.mkdir(dir)
66
+ # # ---------------------------------------------------------------------------------------------------------------
67
+ # def getVars()
68
+ # super
69
+ # @vars[:return_code]
70
+ # end
71
+
72
+ # ---------------------------------------------------------------------------------------------------------------
73
+ def prepareBuild()
74
+ ret = super
75
+ if ret == 0
76
+ unless ENV.has_key?('BUILD_STORE')
77
+ @vars[:build_store] = File.join(ENV['WORKSPACE'],'latest')
78
+ end
79
+ @vars[:build_ext] = 'tar.bz2'
80
+ @vars[:build_pkg] = File.join(@vars[:local_dirs]['artifacts'],@vars[:build_nmn]+".#{@vars[:build_ext]}")
81
+ [ :build_chk, :build_mff, :build_mdf ].each do |file|
82
+ @vars[file] = File.join(@vars[:local_dirs]['artifacts'],File.basename(@vars[file]))
83
+ end
84
+ @vars[:latest_pkg]= "#{@vars[:build_store]}/#{@vars[:build_nmn]}.#{@vars[:build_ext]}"
85
+
86
+ artifacts = []
87
+ scripts = File.join(ENV['WORKSPACE'], ENV['REPO_DIR'], 'scripts', '')
88
+ scripts_glob = File.join(scripts,'**','**')
89
+ Dir.glob(scripts_glob).each do |script|
90
+ if File.file?(script)
91
+ addArtifact(artifacts, script, scripts)
92
+ end
93
+ end
94
+ @vars[:artifacts] = artifacts
95
+ ret = getLatest()
86
96
  end
97
+ @vars[:return_code] = ret
87
98
  end
88
- unless ENV.has_key?('BUILD_STORE')
89
- @vars[:build_store] = File.join(ENV['WORKSPACE'],'latest')
90
- end
91
- @vars[:build_ext] = 'tar.bz2'
92
- @vars[:build_pkg] = File.join(local['artifacts'],@vars[:build_rel]+".#{@vars[:build_ext]}")
93
- [ :build_chk, :build_mff, :build_mdf ].each do |file|
94
- @vars[file] = File.join(local['artifacts'],File.basename(@vars[file]))
95
- end
96
- @vars[:latest_pkg]= "#{@vars[:build_store]}/#{@vars[:build_rel]}.#{@vars[:build_ext]}"
97
-
98
- artifacts = []
99
- scripts_glob = File.join(ENV['WORKSPACE'],ENV['REPO_DIR'], 'scripts','*')
100
- Dir.glob(scripts_glob).each do |script|
101
- key = "#{@vars[:project_name]}/#{@vars[:variant]}/#{@vars[:build_nam]}/#{File.basename(script)}"
102
- # Store the artifact - be sure to inherit possible overrides in pkg name and ext but dictate the drawer!
103
- artifacts << {
104
- key: key,
105
- data: {:file => script},
106
- }
107
- end
108
- @vars[:artifacts] = artifacts
109
- ret = getLatest()
110
- @vars[:return_code] = ret
111
- end
112
99
 
113
- # ---------------------------------------------------------------------------------------------------------------
114
- def packageBuild()
115
- # excludes=%w(*.iml *.txt *.sh *.md .gitignore .editorconfig .jshintrc *.deprecated adminer doc)
116
- # excludes = excludes.map{ |e| "--exclude=#{@vars[:build_nam]}/#{e}" }.join(' ')
117
- raise "Not in WORKSPACE?" unless Dir.pwd == ENV['WORKSPACE']
118
-
119
- Dir.chdir ENV['REPO_DIR']
120
- if Dir.pwd == File.join(ENV['WORKSPACE'], ENV['REPO_DIR'])
121
- cmd = %(tar jcvf #{@vars[:build_pkg]} #{ENV['REPO_PARTS']} 2>&1)
122
- @logger.info cmd
123
- logger_info = %x(#{cmd})
124
- ret = $?.exitstatus
125
- @logger.info logger_info
126
- lines = logger_info.split("\n").map{ |line| line.split(/\s+/)[1] }
127
- IO.write @vars[:build_mff], lines.join("\n")
128
- FileUtils.rmtree(@vars[:build_dir])
129
- unless ret == 0
130
- FileUtils.rm_f(@vars[:build_mff])
100
+ # ---------------------------------------------------------------------------------------------------------------
101
+ def packageBuild()
102
+ @logger.step __method__.to_s
103
+ # excludes=%w(*.iml *.txt *.sh *.md .gitignore .editorconfig .jshintrc *.deprecated adminer doc)
104
+ # excludes = excludes.map{ |e| "--exclude=#{@vars[:build_nam]}/#{e}" }.join(' ')
105
+
106
+ if isSameDirectory(Dir.pwd, ENV['WORKSPACE'])
107
+ Dir.chdir ENV['REPO_DIR']
108
+ if isSameDirectory(Dir.pwd, File.join(ENV['WORKSPACE'], ENV['REPO_DIR']))
109
+ if ENV.has_key?('REPO_PARTS') and not ENV['REPO_PARTS'].empty?
110
+ cmd = %(tar jcvf #{@vars[:build_pkg]} #{ENV['REPO_PARTS']} 2>&1)
111
+ @logger.info cmd
112
+ logger_info = %x(#{cmd})
113
+ @vars[:return_code] = $?.exitstatus
114
+ if @vars[:return_code] == 0
115
+ @logger.debug logger_info
116
+ lines = logger_info.split("\n").map { |line| line.split(/\s+/)[1] }
117
+ begin
118
+ unless IO.write(@vars[:build_mff], lines.join("\n")) > 0
119
+ @logger.error "Nothing was written to manifest '#{@vars[:build_mff]}'"
120
+ @vars[:return_code] = Errors::MANIFEST_EMPTY
121
+ end
122
+ rescue Exception => e
123
+ @logger.error "Failed to write manifest: #{e.class.name} #{e.message} ('#{@vars[:build_mff]}')"
124
+ @vars[:return_code] = Errors::MANIFEST_WRITE
125
+ end
126
+ FileUtils.rmtree(@vars[:build_dir])
127
+ else
128
+ @logger.error "Failed to package '#{@vars[:build_pkg]}': #{logger_info}"
129
+ end
130
+ unless @vars[:return_code] == 0
131
+ @logger.warn "Remove manifest '#{@vars[:build_mff]}' due to error"
132
+ FileUtils.rm_f(@vars[:build_mff])
133
+ end
134
+ end
135
+ else
136
+ @logger.error "Cannot change into '#{ENV['REPO_DIR']}' directory"
137
+ @vars[:return_code] = Errors::REPO_DIR
138
+ end
139
+ else
140
+ @logger.error "Not in WORKSPACE? '#{pwd}' does not match WORKSPACE='#{workspace}'"
141
+ @vars[:return_code] = Errors::WORKSPACE_DIR
131
142
  end
132
- ret
133
- else
134
- raise "Cannot change into '#{ENV['REPO_DIR']}' directory"
143
+
144
+ @vars[:return_code]
135
145
  end
136
146
  end
137
-
138
147
  end
139
148
 
140
149
  end
141
- end
150
+ end
@@ -6,7 +6,7 @@ module CiCd
6
6
  # remove_const c if const_defined?(c)
7
7
  # end
8
8
 
9
- VERSION = '0.9.20'
9
+ VERSION = '0.9.22'
10
10
  MAJOR, MINOR, TINY = VERSION.split('.')
11
11
  PATCH = TINY
12
12
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chefrepo-builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.20
4
+ version: 0.9.22
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christo De Lange
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-18 00:00:00.000000000 Z
11
+ date: 2015-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cicd-builder
@@ -42,58 +42,82 @@ dependencies:
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '1.6'
48
+ - - "<"
46
49
  - !ruby/object:Gem::Version
47
- version: '1.0'
50
+ version: '1.7'
48
51
  type: :development
49
52
  prerelease: false
50
53
  version_requirements: !ruby/object:Gem::Requirement
51
54
  requirements:
52
- - - "~>"
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: '1.6'
58
+ - - "<"
53
59
  - !ruby/object:Gem::Version
54
- version: '1.0'
60
+ version: '1.7'
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: rake
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
- - - "~>"
65
+ - - ">="
60
66
  - !ruby/object:Gem::Version
61
67
  version: '10.3'
68
+ - - "<"
69
+ - !ruby/object:Gem::Version
70
+ version: '11'
62
71
  type: :development
63
72
  prerelease: false
64
73
  version_requirements: !ruby/object:Gem::Requirement
65
74
  requirements:
66
- - - "~>"
75
+ - - ">="
67
76
  - !ruby/object:Gem::Version
68
77
  version: '10.3'
78
+ - - "<"
79
+ - !ruby/object:Gem::Version
80
+ version: '11'
69
81
  - !ruby/object:Gem::Dependency
70
82
  name: rubygems-tasks
71
83
  requirement: !ruby/object:Gem::Requirement
72
84
  requirements:
73
- - - "~>"
85
+ - - ">="
74
86
  - !ruby/object:Gem::Version
75
87
  version: '0.2'
88
+ - - "<"
89
+ - !ruby/object:Gem::Version
90
+ version: '1.1'
76
91
  type: :development
77
92
  prerelease: false
78
93
  version_requirements: !ruby/object:Gem::Requirement
79
94
  requirements:
80
- - - "~>"
95
+ - - ">="
81
96
  - !ruby/object:Gem::Version
82
97
  version: '0.2'
98
+ - - "<"
99
+ - !ruby/object:Gem::Version
100
+ version: '1.1'
83
101
  - !ruby/object:Gem::Dependency
84
102
  name: cucumber
85
103
  requirement: !ruby/object:Gem::Requirement
86
104
  requirements:
87
- - - "~>"
105
+ - - ">="
106
+ - !ruby/object:Gem::Version
107
+ version: 0.10.7
108
+ - - "<"
88
109
  - !ruby/object:Gem::Version
89
- version: '0'
110
+ version: '0.11'
90
111
  type: :development
91
112
  prerelease: false
92
113
  version_requirements: !ruby/object:Gem::Requirement
93
114
  requirements:
94
- - - "~>"
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: 0.10.7
118
+ - - "<"
95
119
  - !ruby/object:Gem::Version
96
- version: '0'
120
+ version: '0.11'
97
121
  description: Jenkins builder task for Chef repo CI/CD
98
122
  email: rubygems@dldinternet.com
99
123
  executables:
@@ -104,6 +128,7 @@ files:
104
128
  - ".gitignore"
105
129
  - ChangeLog.md
106
130
  - Gemfile
131
+ - Gemfile.lock
107
132
  - LICENSE
108
133
  - LICENSE.txt
109
134
  - README.md