chefrepo-builder 0.9.20 → 0.9.22

Sign up to get free protection for your applications and to get access to all the features.
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