clc-promote 0.3.15 → 0.3.16
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 +4 -2
- data/lib/promote/rake_tasks.rb +9 -32
- data/lib/promote/versioner.rb +15 -26
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9154527d572479db900219e14b964145fd8ca281
|
4
|
+
data.tar.gz: 81e513887c826b6fdd14b03b1df886282e7e0ab3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 68513c9814d177a27e9aa98ae265c1aa12ecc9b289226225295625cc992487f07cf1d1407418e153058ab8f0d8496b3c0d1557dd135c66c0ef1a7e466c6fe67f
|
7
|
+
data.tar.gz: 7156ac310dc558ac99e084ffe2cd94ac08a9e893d5414feb05f9e488082b95eb9dc6e0327f3b5b4400df47b725c3a34b357c8e4655224c9995a92df87cfb6614
|
data/README.md
CHANGED
@@ -36,7 +36,7 @@ Promote::RakeTasks.new(config)
|
|
36
36
|
```
|
37
37
|
|
38
38
|
The `Config` class can receive the following settings:
|
39
|
-
Setting |
|
39
|
+
Setting |
|
40
40
|
:repo_root | **mandatory**
|
41
41
|
:cookbook_directory | Defaults to `#{root}/cookbooks`
|
42
42
|
:environment_directory | Defaults to `#{root}/environments`
|
@@ -51,7 +51,7 @@ Setting |
|
|
51
51
|
**Note:** See the [below section on versioning](/gems/clc-promote#How are version numbers generated) for details on how versin numbers are generated.
|
52
52
|
|
53
53
|
### Promote:version_cookbook
|
54
|
-
Bumps the version of an individual cookbook.
|
54
|
+
Bumps the version of an individual cookbook.
|
55
55
|
|
56
56
|
### Promote:version_cookbooks
|
57
57
|
Same as `Promote:version_cookbook` but iterates all cookbooks.
|
@@ -64,9 +64,11 @@ Same as `Promote:version_environment` but iterates all environment files.
|
|
64
64
|
|
65
65
|
### Promote:version_data_bag
|
66
66
|
Bumps the version of an individual databag entry.
|
67
|
+
DEPRECATED (breaks encrypted data bags and vaults).
|
67
68
|
|
68
69
|
### Promote:version_data_bags
|
69
70
|
Bumps the versions of all databag entries.
|
71
|
+
DEPRECATED (breaks encrypted data bags and vaults).
|
70
72
|
|
71
73
|
### Promote:sync_berksfiles
|
72
74
|
Performs a berks install on all cookbooks in the chef repo.
|
data/lib/promote/rake_tasks.rb
CHANGED
@@ -16,8 +16,6 @@ module Promote
|
|
16
16
|
define_version_cookbooks
|
17
17
|
define_version_environment
|
18
18
|
define_version_environments
|
19
|
-
define_version_data_bag
|
20
|
-
define_version_data_bags
|
21
19
|
define_sync_berksfiles
|
22
20
|
define_upload_cookbooks
|
23
21
|
define_upload_environment
|
@@ -103,27 +101,6 @@ module Promote
|
|
103
101
|
end
|
104
102
|
end
|
105
103
|
|
106
|
-
def define_version_data_bag
|
107
|
-
namespace "Promote" do
|
108
|
-
desc "Version a data_bag"
|
109
|
-
task "version_data_bag", :data_bag do |task, args|
|
110
|
-
@versioner.version_data_bag(args.data_bag)
|
111
|
-
end
|
112
|
-
end
|
113
|
-
end
|
114
|
-
|
115
|
-
def define_version_data_bags
|
116
|
-
namespace "Promote" do
|
117
|
-
desc "Version all data_bags"
|
118
|
-
task "version_data_bags" do
|
119
|
-
puts "Version stamping changed data_bags..."
|
120
|
-
@versioner.version_data_bags.each do |result|
|
121
|
-
puts "Versioned data_bag: #{result[:artifact]} v#{result[:version]}"
|
122
|
-
end
|
123
|
-
end
|
124
|
-
end
|
125
|
-
end
|
126
|
-
|
127
104
|
def define_upload_cookbooks
|
128
105
|
namespace "Promote" do
|
129
106
|
desc "Upload all cookbooks in an environment to the chef server"
|
@@ -144,15 +121,15 @@ module Promote
|
|
144
121
|
end
|
145
122
|
end
|
146
123
|
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
124
|
+
def define_upload_data_bags
|
125
|
+
namespace "Promote" do
|
126
|
+
desc "Upload data_bags to the chef server"
|
127
|
+
task "upload_data_bags" do
|
128
|
+
file_uploaded = @uploader.upload_data_bags
|
129
|
+
puts "Uploading #{file_uploaded} to #{@uploader.config.chef_server_url} as #{@uploader.config.node_name} using #{@uploader.config.client_key}"
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
156
133
|
|
157
134
|
end
|
158
135
|
end
|
data/lib/promote/versioner.rb
CHANGED
@@ -5,21 +5,17 @@ module Promote
|
|
5
5
|
class Versioner
|
6
6
|
def initialize(config = Config.new)
|
7
7
|
@config = config
|
8
|
-
@git = git_chef(config)
|
9
|
-
version_tags = @git.tags.select { |t| t.name[/^[0-9\.]+/] }
|
10
|
-
@current_tag = version_tags[-1]
|
11
|
-
@sha1 = @git.log(10000).between(current_tag.sha).first.sha
|
12
8
|
end
|
13
9
|
|
14
10
|
def version_cookbook(cookbook_name)
|
15
11
|
dir = File.join(config.cookbook_directory, cookbook_name)
|
16
12
|
cookbook_name = File.basename(dir)
|
17
|
-
|
13
|
+
ct = current_tag
|
14
|
+
version = version_number(ct, dir)
|
18
15
|
metadata_file = File.join(dir, "metadata.rb")
|
19
16
|
metadata_content = File.read(metadata_file)
|
20
17
|
version_line = metadata_content[/^\s*version\s.*$/]
|
21
18
|
current_version = version_line[/('|").*("|')/].gsub(/('|")/,"")
|
22
|
-
|
23
19
|
if current_version != version
|
24
20
|
metadata_content = metadata_content.gsub(current_version, version)
|
25
21
|
outdata = metadata_content.gsub(/#sha1.*$/, "#sha1 '#{sha1}'")
|
@@ -49,23 +45,8 @@ module Promote
|
|
49
45
|
Utils.sync_berksfiles(config.cookbook_directory)
|
50
46
|
end
|
51
47
|
|
52
|
-
def version_data_bag(data_bag_path)
|
53
|
-
version_json File.dirname(data_bag_path), File.basename(data_bag_path, File.extname(data_bag_path))
|
54
|
-
end
|
55
|
-
|
56
|
-
def version_data_bags
|
57
|
-
results = []
|
58
|
-
Dir.glob(File.join(config.data_bag_directory, "**", "*.json")).each do |file|
|
59
|
-
result = version_data_bag(file)
|
60
|
-
if !result.nil?
|
61
|
-
results << result
|
62
|
-
end
|
63
|
-
end
|
64
|
-
results
|
65
|
-
end
|
66
|
-
|
67
48
|
def version_environment(environment_name)
|
68
|
-
version_json config.environment_directory, environment_name do | content |
|
49
|
+
version_json config.environment_directory, environment_name do | content |
|
69
50
|
content['override_attributes']
|
70
51
|
end
|
71
52
|
end
|
@@ -144,9 +125,17 @@ module Promote
|
|
144
125
|
end
|
145
126
|
end
|
146
127
|
|
147
|
-
|
148
|
-
|
149
|
-
|
128
|
+
def git
|
129
|
+
@git ||= git_chef(config)
|
130
|
+
end
|
131
|
+
|
132
|
+
def current_tag
|
133
|
+
@current_tag ||= git.tags.select { |t| t.name[/^[0-9\.]+/] }[-1]
|
134
|
+
end
|
135
|
+
|
136
|
+
def sha1
|
137
|
+
@sha1 ||= git.log(10000).between(current_tag.sha).first.sha
|
138
|
+
end
|
150
139
|
|
151
140
|
def version_number(current_tag, ref)
|
152
141
|
all_commit_count = git.log(10000).object(ref).between(current_tag.sha).size
|
@@ -157,4 +146,4 @@ module Promote
|
|
157
146
|
|
158
147
|
include Promote::GitHelper
|
159
148
|
end
|
160
|
-
end
|
149
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: clc-promote
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- CenturyLink Cloud
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-11-
|
11
|
+
date: 2014-11-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chef
|