puppet-ci-testing 0.14.0 → 0.16.0

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
- SHA1:
3
- metadata.gz: 6a15e41bb841658e3fe748133fcaa99b1dc561a8
4
- data.tar.gz: 9afe63589635e31e960081b7aacf67ccb776a2b9
2
+ SHA256:
3
+ metadata.gz: 928347f53049919abab4494bef43d7181e015b598b6bbae4688e42070ed498b8
4
+ data.tar.gz: 379237a85a0ae3c4ef5549c109e84ee69b39df18b5574af3bd04077676d854b8
5
5
  SHA512:
6
- metadata.gz: fa6a0b2d99121334e809c99600d14fc3de3d0e21de37ac2b4b35b69f2d46a6d05713332cbb87b68b195be46d2c244f855618b8535a492b67d880dcade374f6cf
7
- data.tar.gz: d69ea762c8f9da29089d8613835438bb3775aef2194fbbd56671f45a99dfe4bdde96d88fdf38f02e2146c07b2b54fb7dfcdd3509abfb5d4155cef8b7c3a18170
6
+ metadata.gz: 3fc973af4473990e3397fad7ec2d0af3230244a2ecd578b5d3260866cd74740b9951f8fac35d97505ef84789b8bf608d9274c2ced1293a54a364083a162193f3
7
+ data.tar.gz: 862541f3915b9e0ea356af25abf8442af5342d77b1c9b3c722764bf40e38ee83baf04f12b839934fa1513f4f6b48f25ed5adefa7bc4897928b50a28b06b5c68f
@@ -58,7 +58,7 @@ EOH
58
58
  opts.on('--git-hook', '-g', 'Execute as a Git pre-commit hook') do
59
59
  options[:git_hook] = true
60
60
  end
61
-
61
+
62
62
  opts.on('--initialize', '--init', '-I', 'Setup Git pre-commit hook') do
63
63
  # insure that we see the .git directory
64
64
  unless Dir.exists? '.git'
@@ -66,26 +66,26 @@ EOH
66
66
  puts "Please rerun the command at the top of the Git directory tree."
67
67
  exit 1
68
68
  end
69
-
69
+
70
70
  # insure that the hooks directory exists
71
71
  unless Dir.exists? '.git/hooks'
72
72
  FileUtils.mkdir '.git/hooks', :mode => 0755
73
73
  end
74
-
74
+
75
75
  # Now create the pre-commit file unless it exists
76
76
  if File.exists? '.git/hooks/pre-commit'
77
77
  puts "The Git pre-commit hook already exists (.git/hooks/pre-commit)."
78
78
  puts "Please remove this file and rerun the command to create the pre-commit hook."
79
79
  exit 1
80
80
  end
81
-
81
+
82
82
  open('.git/hooks/pre-commit', 'w') do |fp|
83
- fp.puts "#{$0} --git-hook || (echo 'puppet-ci-testing gem is not installed' && exit 1)"
83
+ fp.puts "#{File.basename $0} --git-hook || (echo 'puppet-ci-testing gem is not installed' && exit 1)"
84
84
  end
85
85
  FileUtils.chmod 0755, '.git/hooks/pre-commit'
86
86
  exit 0
87
87
  end
88
-
88
+
89
89
  end.parse!
90
90
 
91
91
  # check for an optional directory to
@@ -8,8 +8,10 @@ require 'rake'
8
8
  require 'rspec/core/rake_task'
9
9
  require 'puppetlabs_spec_helper/rake_tasks'
10
10
  require 'puppet-lint/tasks/puppet-lint'
11
+ require 'metadata-json-lint/rake_task'
11
12
 
12
13
  require 'puppet-lint'
14
+ require 'metadata_json_lint'
13
15
 
14
16
  require 'check_file_syntax'
15
17
 
@@ -87,7 +89,7 @@ end
87
89
  def process_puppet_lint_parsing(opts)
88
90
 
89
91
  all_checks = PuppetLint.configuration.checks.map {|chk| chk.to_s}
90
- enables = opts.puppet_lint_enable || all_checks
92
+ enables = opts.puppet_lint_enable.empty? ? all_checks : opts.puppet_lint_enable
91
93
  disables = all_checks - enables
92
94
 
93
95
  puts <<-EOM
@@ -139,7 +141,7 @@ end
139
141
  def process_metadata_lint_parsing(opts)
140
142
 
141
143
  all_checks = MetadataJsonLint.options.members.select {|check| check.to_s if check != :format }
142
- enables = opts.metadata_lint_enable || all_checks
144
+ enables = opts.metadata_lint_enable.empty? ? all_checks : opts.metadata_lint_enable
143
145
  disables = all_checks - enables
144
146
 
145
147
  puts <<-EOM
@@ -157,17 +159,12 @@ def process_metadata_lint_parsing(opts)
157
159
  EOM
158
160
 
159
161
  # configure the rake task to disable specific checks
160
- if not disables.empty?
161
- Rake::Task['lint'].clear
162
- MetadataJsonLint::RakeTask.new :lint do |config|
163
- enables.each {|check| config[check] = true }
164
- disables.each {|check| config[check] = false }
165
- end
166
- end
162
+ enables.each {|check| MetadataJsonLint.options[check] = true }
163
+ disables.each {|check| MetadataJsonLint.options[check] = false}
167
164
 
168
165
  begin
169
166
  # TODO: gather lint output and generate JUnit reports
170
- Rake.application['lint'].invoke
167
+ Rake.application['metadata_lint'].invoke
171
168
  rescue SystemExit => e
172
169
  puts <<-EOM
173
170
 
@@ -59,9 +59,10 @@
59
59
  metadata_lint:
60
60
  run: true
61
61
  enable:
62
- # - strict-dependencies
63
- - strict-license
64
- - fail-on-warnings
62
+ # - strict_dependencies
63
+ - strict_license
64
+ - fail_on_warnings
65
+ #
65
66
  # Configuration for RSpec unit testing
66
67
  rspec:
67
68
  run: true
@@ -2,11 +2,35 @@ require 'colorize'
2
2
  require 'json'
3
3
  require 'yaml'
4
4
  require 'find'
5
+ require 'net/https'
6
+ require 'uri'
7
+
8
+ module Net
9
+ class HTTP
10
+ def self.enable_debug!
11
+ class << self
12
+ alias_method :__new__, :new
13
+ def new(*args, &blk)
14
+ instance = __new__(*args, &blk)
15
+ instance.set_debug_output($stderr)
16
+ instance
17
+ end
18
+ end
19
+ end
5
20
 
21
+ def self.disable_debug!
22
+ class << self
23
+ alias_method :new, :__new__
24
+ remove_method :__new__
25
+ end
26
+ end
27
+ end
28
+ end
6
29
 
7
30
  module CheckFileSyntax
8
31
 
9
- ALL_CHECKS = [:puppet, :ruby, :python, :perl, :bash, :erb, :yaml, :json]
32
+ ALL_CHECKS = [:puppet, :ruby, :python, :perl, :bash, :erb, :yaml, :json,
33
+ :gitlab_ci]
10
34
 
11
35
  module_function
12
36
  def type_of_file(path, interpreter, extensions)
@@ -38,7 +62,7 @@ module CheckFileSyntax
38
62
  end
39
63
 
40
64
  def ruby_file?(path)
41
- type_of_file(path, :ruby, '.rb')
65
+ type_of_file(path, :ruby, ['.rb', '.rake'])
42
66
  end
43
67
 
44
68
  def perl_file?(path)
@@ -57,6 +81,9 @@ module CheckFileSyntax
57
81
  type_of_file(path, '---', ['.yaml', '.yml'])
58
82
  end
59
83
 
84
+ def gitlab_ci_file?(path)
85
+ type_of_file(path, :gitlab_ci, '.gitlab-ci.yml')
86
+ end
60
87
 
61
88
  module_function
62
89
  def show_status (name, success, errors)
@@ -116,14 +143,12 @@ module CheckFileSyntax
116
143
  puts 'Consider installing puppet so that syntax can be checked.'.colorize(:yellow)
117
144
  status = :skipped
118
145
  end
119
- end
120
146
 
121
- if erb_file? path
147
+ elsif erb_file? path
122
148
  errors = `cat #{path} | erb -x -T - | ruby -c 2>&1`
123
149
  status = $?.success? ? :passed : :failed
124
- end
125
150
 
126
- if python_file? path
151
+ elsif python_file? path
127
152
  if system('which python >/dev/null')
128
153
  errors = `python -m py_compile #{path} 2>&1`
129
154
  status = $?.success? ? :passed : :failed
@@ -131,14 +156,12 @@ module CheckFileSyntax
131
156
  puts 'Consider installing python so that syntax can be checked.'.colorize(:yellow)
132
157
  status = :skipped
133
158
  end
134
- end
135
159
 
136
- if ruby_file? path
160
+ elsif ruby_file? path
137
161
  errors = `ruby -c #{path} 2>&1`
138
162
  status = $?.success? ? :passed : :failed
139
- end
140
163
 
141
- if perl_file? path
164
+ elsif perl_file? path
142
165
  if system('which perl >/dev/null')
143
166
  errors = `perl -c #{path} 2>&1`
144
167
  status = $?.success? ? :passed : :failed
@@ -146,15 +169,45 @@ module CheckFileSyntax
146
169
  puts 'Consider installing perl so that syntax can be checked.'.colorize(:yellow)
147
170
  status = :skipped
148
171
  end
149
- end
150
172
 
151
- if bash_file? path
173
+ elsif bash_file? path
152
174
  errors = `bash -n #{path} 2>&1`.to_i
153
175
  status = $?.success? ? :passed : :failed
154
- end
155
176
 
156
-
157
- if json_file? path
177
+ # GitLab CI files need to be processed before YAML
178
+ elsif gitlab_ci_file? path
179
+ ci_content = YAML.load_file(path)
180
+
181
+ token_file = ENV['CI_LINT_TOKEN'] || "#{Dir.home}/.gitlab-tokens"
182
+ if File.readable?(token_file)
183
+ tokens = YAML.load_file(token_file)
184
+ # Any token should work
185
+ priv_token = tokens.values()[0]
186
+
187
+ begin
188
+ uri = URI.parse('https://gitlab.com/api/v4/ci/lint')
189
+ http = Net::HTTP.new(uri.host, uri.port)
190
+ http.use_ssl = true
191
+ #Net::HTTP.enable_debug!
192
+ request = Net::HTTP::Post.new(uri.path, {
193
+ 'Content-Type' => 'application/json',
194
+ 'Accept' => 'application/json',
195
+ 'PRIVATE-TOKEN' => 'ShgK6TXXENFtKA5RWC8U'
196
+ })
197
+ request.body = {content: ci_content.to_json}.to_json
198
+ response = http.request(request)
199
+ rescue => e
200
+ puts "Exception: #{e}"
201
+ end
202
+ results = JSON.parse(response.body)
203
+ case results['status']
204
+ when 'valid'
205
+ status = :passed
206
+ when 'invalid'
207
+ status = :failed
208
+ end
209
+ end
210
+ elsif json_file? path
158
211
  begin
159
212
  JSON.parse(File.read(path))
160
213
  status = :passed
@@ -162,9 +215,8 @@ module CheckFileSyntax
162
215
  errors = e.message
163
216
  status = :failed
164
217
  end
165
- end
166
218
 
167
- if yaml_file? path
219
+ elsif yaml_file? path
168
220
  begin
169
221
  YAML.parse(File.read(path))
170
222
  status = :passed
@@ -181,4 +233,6 @@ module CheckFileSyntax
181
233
  error_count += 1 if status == :failed
182
234
  end
183
235
  end
184
- end
236
+ end
237
+
238
+
@@ -1,31 +1,42 @@
1
1
  require 'spec_helper'
2
2
  require 'check_file_syntax'
3
+ require 'fileutils'
3
4
 
4
5
  describe CheckFileSyntax do
5
-
6
- { :json => '.json',
7
- :yaml => ['.yaml','.yml'],
8
- :perl => ['.pl','.pm'],
9
- :bash => ['.sh','.bash','.zsh','.ksh'],
10
- :ruby => '.rb',
11
- :python => '.py',
12
- :erb => '.erb',
13
- :puppet => '.pp' }.each_pair do |type, exts|
6
+
7
+ after(:all) do
8
+ # clean up after testing
9
+ if Dir.exists? '__pycache__'
10
+ FileUtils.rm_rf '__pycache__'
11
+ end
12
+ end
13
+
14
+
15
+ { :json => '.json',
16
+ :yaml => ['.yaml','.yml'],
17
+ :perl => ['.pl','.pm'],
18
+ :bash => ['.sh','.bash','.zsh','.ksh'],
19
+ :ruby => '.rb',
20
+ :python => '.py',
21
+ :erb => '.erb',
22
+ :puppet => '.pp',
23
+ :gitlab_ci => '.gitlab-ci.yml' }.each_pair do |type, exts|
14
24
  [exts].flatten.each do |ext|
15
25
  it "identifies #{type} with #{ext} extension" do
16
26
  expect(CheckFileSyntax::type_of_file("foo#{ext}", type, exts)).to eq true
17
27
  end
18
28
  end
19
29
  end
20
-
21
- { :json => '.json',
22
- :yaml => ['.yaml','.yml'],
23
- :perl => ['.pl','.pm'],
24
- :bash => ['.sh','.bash','.zsh','.ksh'],
25
- :ruby => '.rb',
26
- :python => '.py',
27
- :erb => '.erb',
28
- :puppet => '.pp' }.each_pair do |type, exts|
30
+
31
+ { :json => '.json',
32
+ :yaml => ['.yaml','.yml'],
33
+ :perl => ['.pl','.pm'],
34
+ :bash => ['.sh','.bash','.zsh','.ksh'],
35
+ :ruby => '.rb',
36
+ :python => '.py',
37
+ :erb => '.erb',
38
+ :puppet => '.pp',
39
+ :gitlab_ci => '.gitlab-ci.yml' }.each_pair do |type, exts|
29
40
  bad_ext = random_string(8)
30
41
  [exts].flatten.each do |ext|
31
42
  it "fails identifying #{type} without #{ext} extension" do
@@ -33,11 +44,11 @@ describe CheckFileSyntax do
33
44
  end
34
45
  end
35
46
  end
36
-
47
+
37
48
  CheckFileSyntax::ALL_CHECKS.each do |type|
38
49
  bad_ext ||= random_string(8)
39
50
  # Puppet, ERB, JSON and YAML files don't have shebang lines
40
- unless [:puppet, :erb, :json, :yaml].include? type
51
+ unless [:puppet, :erb, :json, :yaml, :gitlab_ci].include? type
41
52
  it "identifies content as #{type}" do
42
53
  filename = eval "generate_#{type.to_s}(:valid, extension:'.#{bad_ext}')"
43
54
  expect(CheckFileSyntax::type_of_file(filename, type, '.foo')).to eq true
@@ -45,15 +56,21 @@ describe CheckFileSyntax do
45
56
  end
46
57
  end
47
58
  end
48
-
59
+
49
60
  CheckFileSyntax::ALL_CHECKS.each do |type|
50
61
  it "identifies valid syntax of #{type}" do
51
- filename = eval "generate_#{type.to_s}(:valid)"
52
- CheckFileSyntax::check_file_syntax(filename) { |path, status, errors|
53
- expect(status).to eq :passed
54
- }
62
+ begin
63
+ filename = eval "generate_#{type.to_s}(:valid)"
64
+ CheckFileSyntax::check_file_syntax(filename) { |path, status, errors|
65
+ expect(status).to eq :passed
66
+ }
67
+ rescue Exception => e
68
+ puts e
69
+ end
55
70
  File.unlink filename
56
- File.unlink "#{filename}c" if type == :python
71
+ if type == :python and File.exists? "#{filename}c"
72
+ File.unlink "#{filename}c"
73
+ end
57
74
  end
58
75
  end
59
76
 
@@ -66,5 +83,5 @@ describe CheckFileSyntax do
66
83
  File.unlink filename
67
84
  end
68
85
  end
69
-
86
+
70
87
  end
@@ -0,0 +1,211 @@
1
+ def generate_json(validity, extension: '.json')
2
+ filebase = random_string(16)
3
+ if validity == :valid
4
+ open(filebase + extension, 'w') do |fh|
5
+ fh.puts <<EOF
6
+ {
7
+ "test": "good JSON",
8
+ "foo": "bar"
9
+ }
10
+ EOF
11
+ end
12
+ elsif validity == :invalid
13
+ open(filebase + extension, 'w') do |fh|
14
+ fh.puts <<EOF
15
+ {
16
+ "test": "bad JSON"
17
+ "foo": "bar"
18
+ }
19
+ EOF
20
+ end
21
+ end
22
+
23
+ return filebase + extension
24
+ end
25
+
26
+
27
+ def generate_yaml(validity, extension: '.yaml')
28
+ filebase = random_string(16)
29
+ if validity == :valid
30
+ open(filebase + extension, 'w') do |fh|
31
+ fh.puts <<EOF
32
+ ---
33
+ test: "good YAML"
34
+ foo: "bar"
35
+ EOF
36
+ end
37
+ elsif validity == :invalid
38
+ open(filebase + extension, 'w') do |fh|
39
+ fh.puts <<EOF
40
+ ===
41
+ test: "bad YAML",
42
+ foo: "bar"
43
+ EOF
44
+ end
45
+ end
46
+
47
+ return filebase + extension
48
+ end
49
+
50
+
51
+ def generate_ruby(validity, extension: '.rb')
52
+ filebase = random_string(16)
53
+ if validity == :valid
54
+ open(filebase + extension, 'w') do |fh|
55
+ fh.puts <<EOF
56
+ #!/usr/bin/env ruby
57
+ puts "valid ruby!"
58
+ EOF
59
+ end
60
+ elsif validity == :invalid
61
+ open(filebase + extension, 'w') do |fh|
62
+ fh.puts <<EOF
63
+ #!/usr/bin/env ruby
64
+ put "invalid ruby!'
65
+ EOF
66
+ end
67
+ end
68
+
69
+ return filebase + extension
70
+ end
71
+
72
+
73
+ def generate_python(validity, extension: '.py')
74
+ filebase = random_string(16)
75
+ if validity == :valid
76
+ open(filebase + extension, 'w') do |fh|
77
+ fh.puts <<EOF
78
+ #!/usr/bin/env python
79
+ print("valid python!")
80
+ EOF
81
+ end
82
+ elsif validity == :invalid
83
+ open(filebase + extension, 'w') do |fh|
84
+ fh.puts <<EOF
85
+ #!/usr/bin/env python
86
+ print("invalid python!')
87
+ EOF
88
+ end
89
+ end
90
+
91
+ return filebase + extension
92
+ end
93
+
94
+
95
+ def generate_perl(validity, extension: '.pl')
96
+ filebase = random_string(16)
97
+ if validity == :valid
98
+ open(filebase + extension, 'w') do |fh|
99
+ fh.puts <<EOF
100
+ #!/usr/bin/env perl
101
+ print "valid ";
102
+ print "perl!"
103
+ EOF
104
+ end
105
+ elsif validity == :invalid
106
+ open(filebase + extension, 'w') do |fh|
107
+ fh.puts <<EOF
108
+ #!/usr/bin/env perl
109
+ print "invalid "
110
+ print "perl!"
111
+ EOF
112
+ end
113
+ end
114
+
115
+ return filebase + extension
116
+ end
117
+
118
+
119
+ def generate_bash(validity, extension: '.sh')
120
+ filebase = random_string(16)
121
+ if validity == :valid
122
+ open(filebase + extension, 'w') do |fh|
123
+ fh.puts <<EOF
124
+ #!/bin/bash
125
+ echo "valid shell!"
126
+ EOF
127
+ end
128
+ elsif validity == :invalid
129
+ open(filebase + extension, 'w') do |fh|
130
+ fh.puts <<EOF
131
+ #!/bin/bash
132
+ echo "invalid shell!'
133
+ EOF
134
+ end
135
+ end
136
+
137
+ return filebase + extension
138
+ end
139
+
140
+
141
+ def generate_erb(validity, extension: '.erb')
142
+ filebase = random_string(16)
143
+ if validity == :valid
144
+ open(filebase + extension, 'w') do |fh|
145
+ fh.puts <<EOF
146
+ <% puts "valid erb!" %>
147
+ EOF
148
+ end
149
+ elsif validity == :invalid
150
+ open(filebase + extension, 'w') do |fh|
151
+ fh.puts <<EOF
152
+ <% puts "invalid " <%= erb!" %>
153
+ EOF
154
+ end
155
+ end
156
+
157
+ return filebase + extension
158
+ end
159
+
160
+
161
+ def generate_puppet(validity, extension: '.pp')
162
+ filebase = random_string(16)
163
+ if validity == :valid
164
+ open(filebase + extension, 'w') do |fh|
165
+ fh.puts <<EOF
166
+ puppet { 'good': }
167
+ EOF
168
+ end
169
+ elsif validity == :invalid
170
+ open(filebase + extension, 'w') do |fh|
171
+ fh.puts <<EOF
172
+ puppet { "bad" }
173
+ EOF
174
+ end
175
+ end
176
+
177
+ return filebase + extension
178
+ end
179
+
180
+
181
+ def generate_gitlab_ci(validity, extension: '.gitlab-ci.yml')
182
+ filebase = random_string(16)
183
+ if validity == :valid
184
+ open(filebase + extension, 'w') do |fh|
185
+ fh.puts <<EOF
186
+ stages:
187
+ - stage1
188
+
189
+ job1:
190
+ stage: stage1
191
+ script:
192
+ - echo "test"
193
+ EOF
194
+ end
195
+ elsif validity == :invalid
196
+ open(filebase + extension, 'w') do |fh|
197
+ fh.puts <<EOF
198
+ stages:
199
+ stage1:
200
+
201
+ job1:
202
+ stage: stage2
203
+ script:
204
+ echo "test"
205
+ echo "test2"
206
+ EOF
207
+ end
208
+ end
209
+
210
+ return filebase + extension
211
+ end
data/spec/spec_helper.rb CHANGED
@@ -102,187 +102,8 @@ RSpec.configure do |config|
102
102
  =end
103
103
  end
104
104
 
105
+ require 'file_generators'
106
+
105
107
  def random_string(size=10)
106
108
  (0..size).map { ('a'..'z').to_a[rand(26)] }.join
107
109
  end
108
-
109
-
110
- def generate_json(validity, extension: '.json')
111
- filebase = random_string(16)
112
- if validity == :valid
113
- open(filebase + extension, 'w') do |fh|
114
- fh.puts <<EOF
115
- {
116
- "test": "good JSON",
117
- "foo": "bar"
118
- }
119
- EOF
120
- end
121
- elsif validity == :invalid
122
- open(filebase + extension, 'w') do |fh|
123
- fh.puts <<EOF
124
- {
125
- "test": "bad JSON"
126
- "foo": "bar"
127
- }
128
- EOF
129
- end
130
- end
131
-
132
- return filebase + extension
133
- end
134
-
135
-
136
- def generate_yaml(validity, extension: '.yaml')
137
- filebase = random_string(16)
138
- if validity == :valid
139
- open(filebase + extension, 'w') do |fh|
140
- fh.puts <<EOF
141
- ---
142
- test: "good YAML"
143
- foo: "bar"
144
- EOF
145
- end
146
- elsif validity == :invalid
147
- open(filebase + extension, 'w') do |fh|
148
- fh.puts <<EOF
149
- ===
150
- test: "bad YAML",
151
- foo: "bar"
152
- EOF
153
- end
154
- end
155
-
156
- return filebase + extension
157
- end
158
-
159
-
160
- def generate_ruby(validity, extension: '.rb')
161
- filebase = random_string(16)
162
- if validity == :valid
163
- open(filebase + extension, 'w') do |fh|
164
- fh.puts <<EOF
165
- #!/usr/bin/env ruby
166
- puts "valid ruby!"
167
- EOF
168
- end
169
- elsif validity == :invalid
170
- open(filebase + extension, 'w') do |fh|
171
- fh.puts <<EOF
172
- #!/usr/bin/env ruby
173
- put "invalid ruby!'
174
- EOF
175
- end
176
- end
177
-
178
- return filebase + extension
179
- end
180
-
181
-
182
- def generate_python(validity, extension: '.py')
183
- filebase = random_string(16)
184
- if validity == :valid
185
- open(filebase + extension, 'w') do |fh|
186
- fh.puts <<EOF
187
- #!/usr/bin/env python
188
- print("valid python!")
189
- EOF
190
- end
191
- elsif validity == :invalid
192
- open(filebase + extension, 'w') do |fh|
193
- fh.puts <<EOF
194
- #!/usr/bin/env python
195
- print("invalid python!')
196
- EOF
197
- end
198
- end
199
-
200
- return filebase + extension
201
- end
202
-
203
-
204
- def generate_perl(validity, extension: '.pl')
205
- filebase = random_string(16)
206
- if validity == :valid
207
- open(filebase + extension, 'w') do |fh|
208
- fh.puts <<EOF
209
- #!/usr/bin/env perl
210
- print "valid ";
211
- print "perl!"
212
- EOF
213
- end
214
- elsif validity == :invalid
215
- open(filebase + extension, 'w') do |fh|
216
- fh.puts <<EOF
217
- #!/usr/bin/env perl
218
- print "invalid "
219
- print "perl!"
220
- EOF
221
- end
222
- end
223
-
224
- return filebase + extension
225
- end
226
-
227
-
228
- def generate_bash(validity, extension: '.sh')
229
- filebase = random_string(16)
230
- if validity == :valid
231
- open(filebase + extension, 'w') do |fh|
232
- fh.puts <<EOF
233
- #!/bin/bash
234
- echo "valid shell!"
235
- EOF
236
- end
237
- elsif validity == :invalid
238
- open(filebase + extension, 'w') do |fh|
239
- fh.puts <<EOF
240
- #!/bin/bash
241
- echo "invalid shell!'
242
- EOF
243
- end
244
- end
245
-
246
- return filebase + extension
247
- end
248
-
249
-
250
- def generate_erb(validity, extension: '.erb')
251
- filebase = random_string(16)
252
- if validity == :valid
253
- open(filebase + extension, 'w') do |fh|
254
- fh.puts <<EOF
255
- <% puts "valid erb!" %>
256
- EOF
257
- end
258
- elsif validity == :invalid
259
- open(filebase + extension, 'w') do |fh|
260
- fh.puts <<EOF
261
- <% puts "invalid " <%= erb!" %>
262
- EOF
263
- end
264
- end
265
-
266
- return filebase + extension
267
- end
268
-
269
-
270
- def generate_puppet(validity, extension: '.pp')
271
- filebase = random_string(16)
272
- if validity == :valid
273
- open(filebase + extension, 'w') do |fh|
274
- fh.puts <<EOF
275
- puppet { 'good': }
276
- EOF
277
- end
278
- elsif validity == :invalid
279
- open(filebase + extension, 'w') do |fh|
280
- fh.puts <<EOF
281
- puppet { "bad" }
282
- EOF
283
- end
284
- end
285
-
286
- return filebase + extension
287
- end
288
-
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet-ci-testing
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.0
4
+ version: 0.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerard Hickey
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-10 00:00:00.000000000 Z
11
+ date: 2021-07-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: puppet
@@ -140,16 +140,16 @@ dependencies:
140
140
  name: rake
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - "~>"
143
+ - - ">="
144
144
  - !ruby/object:Gem::Version
145
- version: 11.3.0
145
+ version: 12.3.3
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - "~>"
150
+ - - ">="
151
151
  - !ruby/object:Gem::Version
152
- version: 11.3.0
152
+ version: 12.3.3
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: rspec
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -207,12 +207,13 @@ files:
207
207
  - lib/check_file_syntax.rb
208
208
  - lib/simple_junit.rb
209
209
  - spec/check_file_syntax_spec.rb
210
+ - spec/file_generators.rb
210
211
  - spec/simple_junit_spec.rb
211
212
  - spec/spec_helper.rb
212
- homepage: https://github.com/hickey/puppet-ci-testing/
213
+ homepage: https://gitlab.com/wt0f/puppet-ci-testing/
213
214
  licenses: []
214
215
  metadata: {}
215
- post_install_message:
216
+ post_install_message:
216
217
  rdoc_options: []
217
218
  require_paths:
218
219
  - lib
@@ -227,9 +228,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
227
228
  - !ruby/object:Gem::Version
228
229
  version: '0'
229
230
  requirements: []
230
- rubyforge_project:
231
- rubygems_version: 2.4.8
232
- signing_key:
231
+ rubygems_version: 3.0.8
232
+ signing_key:
233
233
  specification_version: 4
234
234
  summary: Utilities to perform Puppet testing in a CI workflow
235
235
  test_files: []