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 +4 -4
- data/README.md +2 -0
- data/Rakefile +2 -0
- data/lib/core/ext/string.rb +4 -0
- data/lib/reagan.rb +2 -2
- data/lib/reagan/changeset.rb +3 -3
- data/lib/reagan/config.rb +6 -6
- data/lib/reagan/test_knife.rb +1 -1
- data/lib/reagan/test_reagan.rb +1 -1
- data/lib/reagan/test_version.rb +1 -1
- data/reagan.gemspec +5 -5
- metadata +28 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 458a72d167fe553a9fa94b4b5a4b190093e4a604
|
4
|
+
data.tar.gz: 965418d77873904bbb6f8ed557b0d83997486020
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
data/lib/core/ext/string.rb
CHANGED
data/lib/reagan.rb
CHANGED
@@ -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.
|
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
|
data/lib/reagan/changeset.rb
CHANGED
@@ -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
|
-
|
78
|
-
|
79
|
-
|
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
|
data/lib/reagan/config.rb
CHANGED
@@ -86,12 +86,12 @@ module Reagan
|
|
86
86
|
config = YAML.load_file(cli_flags['config'])
|
87
87
|
|
88
88
|
config
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
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
|
data/lib/reagan/test_knife.rb
CHANGED
@@ -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
|
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
|
data/lib/reagan/test_reagan.rb
CHANGED
@@ -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' : '
|
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
|
data/lib/reagan/test_version.rb
CHANGED
@@ -54,7 +54,7 @@ module Reagan
|
|
54
54
|
'0.0.0'
|
55
55
|
end
|
56
56
|
rescue Ridley::Errors::ConnectionFailed
|
57
|
-
puts '
|
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
|
data/reagan.gemspec
CHANGED
@@ -1,22 +1,22 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'reagan'
|
3
|
-
s.version = '1.0
|
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 = '
|
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
|
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', '~>
|
19
|
-
s.add_development_dependency 'rubocop', '~> 0.
|
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
|
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:
|
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: '
|
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: '
|
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.
|
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.
|
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:
|
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
|
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.
|
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:
|