chef-raketasks 0.2.0 → 0.5.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/CHANGELOG.md +12 -0
- data/README.md +23 -3
- data/lib/chef/raketasks/gem.rb +24 -10
- data/lib/chef/raketasks/release.rb +14 -2
- data/lib/chef/raketasks/test.rb +6 -3
- data/lib/chef/raketasks/version.rb +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fd6c2fd289683cb8a5c5e68deafe185baead939f260e8b0bc7366fecc06731ee
|
4
|
+
data.tar.gz: 0a87509dabd7be5d9a1c286bef48f7ca0cf9b47fd638b64848d595a9714a21a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 90cfa6434edce820f235aeddb8fd0038bac23323f650ba990e3c1c5c4f85b2a166944a3c883b6fd35d1d4c9ce72883aae40ed689b743d7a5d524688e0d97b9f4
|
7
|
+
data.tar.gz: 854217379784de4611c83f0ed677e85a20b07d2ba6e1bbd2ae17d855b0ceb4c90a7e06e46b0092d708bd2dd085d2895f1265521a7743738dad6d5bc514fad09a
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,17 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## Version 0.5.0
|
4
|
+
|
5
|
+
- Add gem:vendor as new raketask to vendor gems for cookbooks and others
|
6
|
+
|
7
|
+
## Version 0.4.0
|
8
|
+
|
9
|
+
- Extend rake release:supermarket with multiple additional options
|
10
|
+
|
11
|
+
## Version 0.3.0
|
12
|
+
|
13
|
+
- Enable `cookstyle` as linting option for `rake test:lint:cookbook[autocorrect]` with autocorrect options
|
14
|
+
|
3
15
|
## Version 0.2.0
|
4
16
|
|
5
17
|
- Add `repin` tasks
|
data/README.md
CHANGED
@@ -26,7 +26,7 @@ Rakefile. After that, just run ```rake -T``` or ```rake --tasks``` to see all
|
|
26
26
|
available tasks.
|
27
27
|
|
28
28
|
If you start a Rake task with parameters, please assure to not use spaces
|
29
|
-
between `[ ]`. This will result in `Don't know how to build task` errors.
|
29
|
+
between `[ ]`. This will result in `Don't know how to build task` errors.
|
30
30
|
|
31
31
|
## Cleanup Tasks
|
32
32
|
|
@@ -76,6 +76,15 @@ Installs vcenter sdk for kitchen.
|
|
76
76
|
* `version`: define a specific version of the gem
|
77
77
|
* `source`: define a different source than rubygems.org
|
78
78
|
|
79
|
+
### rake gem:vendor[gemname, version, source, installdir]
|
80
|
+
|
81
|
+
Vendors rubygems to a specific directory inside the cookbook
|
82
|
+
|
83
|
+
* `gemname`: the name of the gem to be used
|
84
|
+
* `version`: define a specific version of the gem
|
85
|
+
* `source`: define a different source than rubygems.org
|
86
|
+
* `installdir`: define the desired targetdir where the vendoring should happen
|
87
|
+
|
79
88
|
## Packaging Tasks
|
80
89
|
|
81
90
|
### rake package:cookbook
|
@@ -107,11 +116,20 @@ Upload to Artifactory with required settings like:
|
|
107
116
|
Upload to Chef Server.
|
108
117
|
It uses the current configured supermarket in your knife.rb or config.rb.
|
109
118
|
|
110
|
-
### rake release:supermarket
|
119
|
+
### rake release:supermarket[siteurl,user,authkeyfile,cookbookpath,cookbookname,configfile]
|
111
120
|
|
112
121
|
Upload to Chef Supermarket.
|
113
122
|
It uses the current configured supermarket in your knife.rb or config.rb.
|
114
123
|
|
124
|
+
You are also allowed to use multiple additional settings:
|
125
|
+
|
126
|
+
* `siteurl`: defines the url of a Chef Supermarket
|
127
|
+
* `user`: the user to authenticate
|
128
|
+
* `authkeyfile`: the keyfile to use (it must be a file present on your system)
|
129
|
+
* `cookbookpath`: the path where to look up for cookbooks (default: `../`)
|
130
|
+
* `cookbookname`: define different cookbookname instead of the current one
|
131
|
+
* `configfile`: define a config.rb file instead of the settings above (this might look like `rake release:supermarket[,,,,,~/.chef/config.rb]`)
|
132
|
+
|
115
133
|
## Repin Tasks
|
116
134
|
|
117
135
|
### rake repin:chef-client[gem,version]
|
@@ -197,10 +215,12 @@ specific file for this task is `.kitchen.vcenter.yml`.
|
|
197
215
|
|
198
216
|
Details at <https://github.com/chef/kitchen-vcenter>
|
199
217
|
|
200
|
-
### rake test:lint:cookbook
|
218
|
+
### rake test:lint:cookbook[autocorrect]
|
201
219
|
|
202
220
|
Run linting tests for cookbook in current dir.
|
203
221
|
|
222
|
+
You can add true as option to auto-correct found issues that can be automatically fixed.
|
223
|
+
|
204
224
|
## Contributing
|
205
225
|
|
206
226
|
For information on contributing to this project see <https://github.com/chef/chef/blob/master/CONTRIBUTING.md>
|
data/lib/chef/raketasks/gem.rb
CHANGED
@@ -24,18 +24,20 @@ module ChefRake
|
|
24
24
|
super
|
25
25
|
|
26
26
|
namespace :gem do
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
27
|
+
def install_gem(name, version, source, installdir)
|
28
|
+
cmd = 'chef gem install '
|
29
|
+
cmd << "#{name} "
|
30
|
+
cmd << "-v \"#{version}\" " unless version.nil?
|
31
|
+
cmd << "-s #{source} " unless source.nil?
|
32
|
+
cmd << "--install-dir #{installdir} " unless installdir.nil? # used mostly for vendoring
|
33
|
+
cmd << '--no-user-install ' unless installdir.nil? # used for vendoring
|
34
|
+
cmd << '--no-document'
|
35
35
|
|
36
|
-
|
37
|
-
|
36
|
+
sh cmd
|
37
|
+
end
|
38
38
|
|
39
|
+
desc 'gem:install'
|
40
|
+
namespace :install do
|
39
41
|
# NAMESPACE: gem:install:static
|
40
42
|
desc 'Installs necessary static gems for kitchen'
|
41
43
|
task static: %i[
|
@@ -66,6 +68,18 @@ module ChefRake
|
|
66
68
|
end
|
67
69
|
end # namespace vcenter
|
68
70
|
end # namespace install
|
71
|
+
|
72
|
+
# NAMESPACE: gem:vendor
|
73
|
+
desc 'Vendors gems into cookbook'
|
74
|
+
task :vendor, [:gemname, :version, :source, :installdir] do |_t, args|
|
75
|
+
args.with_defaults(
|
76
|
+
version: '>= 0', # so use latest when not set
|
77
|
+
source: nil,
|
78
|
+
installdir: 'files/default/vendor'
|
79
|
+
)
|
80
|
+
|
81
|
+
install_gem(args.gemname, args.version, args.source, args.installdir)
|
82
|
+
end
|
69
83
|
end # namespace gem
|
70
84
|
end # def initialize
|
71
85
|
end # class Gem
|
@@ -70,7 +70,7 @@ module ChefRake
|
|
70
70
|
end
|
71
71
|
|
72
72
|
desc 'Upload to Chef Supermarket'
|
73
|
-
task :supermarket do
|
73
|
+
task :supermarket, [:siteurl, :user, :authkeyfile, :cookbookpath, :cookbookname, :configfile] do |_t, args|
|
74
74
|
Rake::Task['clean:cookbook'].execute
|
75
75
|
|
76
76
|
require 'berkshelf'
|
@@ -79,8 +79,20 @@ module ChefRake
|
|
79
79
|
metadata = Chef::Cookbook::Metadata.new
|
80
80
|
metadata.from_file File.join(current_dir, 'metadata.rb')
|
81
81
|
|
82
|
+
args.with_defaults(
|
83
|
+
cookbookpath: parent_dir
|
84
|
+
)
|
85
|
+
|
82
86
|
cmd = "knife supermarket share #{metadata.name}"
|
83
|
-
|
87
|
+
if args.configfile.nil?
|
88
|
+
cmd << " --cookbook-path #{parent_dir}"
|
89
|
+
cmd << " --supermarket-site #{args.siteurl}" unless args.siteurl.nil?
|
90
|
+
cmd << " --user #{args.user}" unless args.user.nil?
|
91
|
+
cmd << " --key #{args.authkeyfile}" unless args.authkeyfile.nil?
|
92
|
+
elsif args.configfile
|
93
|
+
cmd << " --config #{args.configfile}" unless args.configfile.nil?
|
94
|
+
end
|
95
|
+
|
84
96
|
sh cmd
|
85
97
|
|
86
98
|
# require 'chef/mixin/shell_out'
|
data/lib/chef/raketasks/test.rb
CHANGED
@@ -94,9 +94,12 @@ module ChefRake
|
|
94
94
|
|
95
95
|
namespace :lint do
|
96
96
|
desc 'Run linting tests for cookbook'
|
97
|
-
task :cookbook do
|
98
|
-
|
99
|
-
|
97
|
+
task :cookbook, [:autocorrect] do |_t, args|
|
98
|
+
args.with_defaults(autocorrect: false)
|
99
|
+
|
100
|
+
cmd = 'cookstyle'
|
101
|
+
cmd << ' --auto-correct' if args.autocorrect
|
102
|
+
sh cmd
|
100
103
|
end
|
101
104
|
end # namespace lint
|
102
105
|
end # namespace test
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-raketasks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Patrick Schaumburg
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2021-12-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: mdl
|
@@ -145,7 +145,8 @@ files:
|
|
145
145
|
homepage: https://www.tecracer.de
|
146
146
|
licenses:
|
147
147
|
- Apache-2.0
|
148
|
-
metadata:
|
148
|
+
metadata:
|
149
|
+
rubygems_mfa_required: 'true'
|
149
150
|
post_install_message: Add `require 'chef-raketasks'` to your `Rakefile`.
|
150
151
|
rdoc_options: []
|
151
152
|
require_paths:
|
@@ -161,7 +162,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
161
162
|
- !ruby/object:Gem::Version
|
162
163
|
version: '0'
|
163
164
|
requirements: []
|
164
|
-
rubygems_version: 3.
|
165
|
+
rubygems_version: 3.2.22
|
165
166
|
signing_key:
|
166
167
|
specification_version: 4
|
167
168
|
summary: Collection of reusable Rake tasks for Chef
|