reagan 1.0.2 → 1.1.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
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: