reagan 1.0.2 → 1.1.0

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: 82b26aac734f61733db7108f0987c104cf5f00eb
4
- data.tar.gz: 93867b5e5b4889286c1a38a910ef8d741fd7b1d6
3
+ metadata.gz: 458a72d167fe553a9fa94b4b5a4b190093e4a604
4
+ data.tar.gz: 965418d77873904bbb6f8ed557b0d83997486020
5
5
  SHA512:
6
- metadata.gz: 8c02e7bb3ddfa4d14fcde1a0c6d7ec34ea96cf70e43efcb74475d7625d7978e768a8c4d2d8915d06b053e0d1ca2cfd285de69cd1ce64f56be99124f334562314
7
- data.tar.gz: b03136abd428f35af38207375daa2a30f05fd46009d6a12411dd2c3c73f5b8a3c6cedfeef14cf410fe3c4aa8bb866fbd42a033726630bcd7c3fad3724de40cb2
6
+ metadata.gz: e138b6b8f6b8b8e3df9164e415f3ea08e2099280a9fc6b1b825d479623de777641d8bf86748e36472c6da610bd156006989c1a4748df6e966cc939e916f86a6b
7
+ data.tar.gz: ec4ee6edca3d238c65111fc639790fb138dce2ebfdbc096f5f2111106d620bf90373e461eadd724bde0263593e26cf7fefbd7373f15c9838bbac3aff1515b4bb
data/README.md CHANGED
@@ -8,6 +8,8 @@ Trust But Verify - Ruby Jenkins build script that automates the testing of indiv
8
8
  * Optionally run any commands in a per cookbook reagan_test.yml file (rubocop? foodcritic? chefspec?)
9
9
  * Validate that JSON files parse
10
10
 
11
+ See my blog post for examples: http://www.therealtimsmith.com/home/2015/11/trust-but-verify-your-chef-infrastructure/
12
+
11
13
  ##Requirements
12
14
  * Ruby 1.9.3 (rbenv Jenkins plugin suggested to get more modern Ruby)
13
15
  * Jenkins Github Pull Request Builder plugin
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ require 'bundler/gem_tasks'
2
+
1
3
  task default: %w(test)
2
4
 
3
5
  task :test do
@@ -24,6 +24,10 @@ class String
24
24
  puts "\n"
25
25
  end
26
26
 
27
+ def to_green
28
+ "\033[32m#{self}\033[0m"
29
+ end
30
+
27
31
  def to_red
28
32
  "\033[31m#{self}\033[0m"
29
33
  end
@@ -77,8 +77,8 @@ module Reagan
77
77
 
78
78
  # print success or failure
79
79
  failure = results.include?(false)
80
- text = failure ? 'Reagan testing has failed' : 'All Reagan tests have suceeded'
81
- text.to_red.marquee
80
+ text = failure ? 'Reagan testing has failed'.to_red : 'All Reagan tests have suceeded'.to_green
81
+ text.marquee
82
82
 
83
83
  # if any test failed then exit 1 so jenkins can pick up the failure
84
84
  exit 1 if failure
@@ -74,9 +74,9 @@ module Reagan
74
74
  Octokit.api_endpoint = Config.settings['github']['api_endpoint'] || 'https://api.github.com'
75
75
  gh = Octokit::Client.new(access_token: Config.settings['github']['auth_token'])
76
76
  files_from_pull(gh.pull_request_files(Config.settings['github']['repo'], pull_num))
77
- rescue
78
- puts 'Failed to query pull request contents from Github. Check the api_endpoint, repo, and token.'
79
- exit 1
77
+ rescue
78
+ puts 'Failed to query pull request contents from Github. Check the api_endpoint, repo, and token.'.to_red
79
+ exit 1
80
80
  end
81
81
 
82
82
  # convert pull request response to array of changed files
@@ -86,12 +86,12 @@ module Reagan
86
86
  config = YAML.load_file(cli_flags['config'])
87
87
 
88
88
  config
89
- rescue Errno::ENOENT
90
- puts "ERROR: Cannot load Reagan config file at #{cli_flags['config']}".to_red
91
- exit 1
92
- rescue Psych::SyntaxError
93
- puts "ERROR: Syntax error in Reagan config file at #{cli_flags['config']}".to_red
94
- exit 1
89
+ rescue Errno::ENOENT
90
+ puts "ERROR: Cannot load Reagan config file at #{cli_flags['config']}".to_red
91
+ exit 1
92
+ rescue Psych::SyntaxError
93
+ puts "ERROR: Syntax error in Reagan config file at #{cli_flags['config']}".to_red
94
+ exit 1
95
95
  end
96
96
 
97
97
  # make sure the config was properly loaded and contains the various keys we need
@@ -30,7 +30,7 @@ module Reagan
30
30
  result = system "knife cookbook test -o #{File.join(Config.settings['jenkins']['workspace_dir'], 'cookbooks')} #{@cookbook} > /dev/null 2>&1"
31
31
 
32
32
  puts 'Running knife cookbook test:'
33
- puts result ? 'PASS: Knife cookbook test was successful'.indent : 'FAIL: Knife cookbookk test was NOT successful'.indent.to_red
33
+ puts result ? 'PASS: Knife cookbook test was successful'.indent : 'FAIL: Knife cookbook test was NOT successful'.indent.to_red
34
34
  result
35
35
  end
36
36
  end
@@ -41,7 +41,7 @@ module Reagan
41
41
  result = system test
42
42
  status = false if result == false
43
43
  end
44
- puts status ? 'PASS: reagan_test.yml test was successful' : ' FAIL: reagan_test.yml test was NOT successful'.indent.to_red
44
+ puts status ? 'PASS: reagan_test.yml test was successful' : 'FAIL: reagan_test.yml test was NOT successful'.indent.to_red
45
45
  status
46
46
  else
47
47
  puts 'SKIP: No reagan_test.yml file found in the cookbook path. Skipping test'.indent
@@ -54,7 +54,7 @@ module Reagan
54
54
  '0.0.0'
55
55
  end
56
56
  rescue Ridley::Errors::ConnectionFailed
57
- puts ' ERROR: Failed to connect to the Chef server. Cannot continue'.to_red
57
+ puts 'ERROR: Failed to connect to the Chef server. Cannot continue'.indent.to_red
58
58
  exit 1
59
59
  end
60
60
  end
@@ -1,22 +1,22 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'reagan'
3
- s.version = '1.0.2'
3
+ s.version = '1.1.0'
4
4
  s.date = Date.today.to_s
5
5
  s.platform = Gem::Platform::RUBY
6
6
  s.extra_rdoc_files = ['README.md', 'LICENSE']
7
7
  s.summary = 'Trust But Verify - Ruby build script for Jenkins that automates the testing of Chef cookbooks'
8
8
  s.description = s.summary
9
9
  s.authors = ['Tim Smith']
10
- s.email = 'tim@cozy.co'
10
+ s.email = 'tsmith@chef.io'
11
11
  s.homepage = 'http://www.github.com/tas50/reagan'
12
12
  s.license = 'Apache-2.0'
13
13
 
14
- s.required_ruby_version = '>= 1.9.3'
14
+ s.required_ruby_version = '>= 2.1'
15
15
  s.add_dependency 'octokit', '~> 3.0'
16
16
  s.add_dependency 'chef', '>= 11.0'
17
17
  s.add_dependency 'ridley', '~> 4.0'
18
- s.add_development_dependency 'rake', '~> 10.0'
19
- s.add_development_dependency 'rubocop', '~> 0.30.1'
18
+ s.add_development_dependency 'rake', '~> 11.0'
19
+ s.add_development_dependency 'rubocop', '~> 0.42.0'
20
20
 
21
21
  s.files = `git ls-files -z`.split("\x0")
22
22
  s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
metadata CHANGED
@@ -1,97 +1,97 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reagan
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Smith
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-29 00:00:00.000000000 Z
11
+ date: 2016-08-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: octokit
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '3.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '3.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: chef
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '11.0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '11.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: ridley
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '4.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '4.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '10.0'
61
+ version: '11.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '10.0'
68
+ version: '11.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rubocop
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.30.1
75
+ version: 0.42.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.30.1
82
+ version: 0.42.0
83
83
  description: Trust But Verify - Ruby build script for Jenkins that automates the testing
84
84
  of Chef cookbooks
85
- email: tim@cozy.co
85
+ email: tsmith@chef.io
86
86
  executables:
87
87
  - reagan
88
88
  extensions: []
89
89
  extra_rdoc_files:
90
90
  - README.md
91
91
  files:
92
- - .gitignore
93
- - .rubocop.yml
94
- - .travis.yml
92
+ - ".gitignore"
93
+ - ".rubocop.yml"
94
+ - ".travis.yml"
95
95
  - Gemfile
96
96
  - LICENSE
97
97
  - README.md
@@ -114,30 +114,29 @@ licenses:
114
114
  metadata: {}
115
115
  post_install_message:
116
116
  rdoc_options:
117
- - --line-numbers
118
- - --inline-source
119
- - --title
117
+ - "--line-numbers"
118
+ - "--inline-source"
119
+ - "--title"
120
120
  - reagan
121
- - --main
121
+ - "--main"
122
122
  - README.md
123
123
  require_paths:
124
124
  - lib
125
125
  required_ruby_version: !ruby/object:Gem::Requirement
126
126
  requirements:
127
- - - '>='
127
+ - - ">="
128
128
  - !ruby/object:Gem::Version
129
- version: 1.9.3
129
+ version: '2.1'
130
130
  required_rubygems_version: !ruby/object:Gem::Requirement
131
131
  requirements:
132
- - - '>='
132
+ - - ">="
133
133
  - !ruby/object:Gem::Version
134
134
  version: '0'
135
135
  requirements: []
136
136
  rubyforge_project:
137
- rubygems_version: 2.4.2
137
+ rubygems_version: 2.6.6
138
138
  signing_key:
139
139
  specification_version: 4
140
140
  summary: Trust But Verify - Ruby build script for Jenkins that automates the testing
141
141
  of Chef cookbooks
142
142
  test_files: []
143
- has_rdoc: