knife-tar 1.3.0 → 1.3.1

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +165 -36
  3. metadata +7 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4183e7e044edb84698f6e0a61626f3300f28f213
4
- data.tar.gz: a922309881959011c66459e8dc94d9ea05da9594
3
+ metadata.gz: 4e8511e64a86e613d01c98e287f7abb5a2284ab7
4
+ data.tar.gz: 8cfaaf1f41493c2a32d6b41dbc25598ae54b9610
5
5
  SHA512:
6
- metadata.gz: 6a93d3e779f0dbb8a75f18a359c4757c0476fd5e5c35de7f55d49476a1e5c5e6098b90f33554adfaabad933eb2be87fbe2a1fdf751e8f838defe0b8afeffeee3
7
- data.tar.gz: 2fb7077cd62c278439a56beae3c56d96ac97991f16191b823ee5d5b2b7f86e8b25a9fed338a70c82497b57eac65ba1ea1f768acaa82141f49d2a95c077cf35f1
6
+ metadata.gz: e13aa6fc497ba20dbee01b94a03b58fe77c5124fc678c4a4d018b44ba29bee4c434559ba1efde221726ef89ded8ca4348f6bc77f06e1185d3b84eb5abfa98570
7
+ data.tar.gz: 5d462a08ebb757e0a10afbd1cbd002464f1b1429e0582ebbb6e2750f0e26ab442a02b976c472274434a5de66dd5d8d0af7aaa386ee936bdf714fd89b2d4a65ed
data/Rakefile CHANGED
@@ -1,60 +1,189 @@
1
1
  # coding: UTF-8
2
+ require 'octokit'
3
+
4
+ REPO = "cerner/knife-tar"
2
5
 
3
6
  task :default => [:build]
4
7
 
5
8
  task :build do
6
- puts "Building the gem"
7
- runCommand "gem build knife-tar.gemspec"
8
- end
9
-
10
- task :release => [:build] do
11
- deployGem
12
- release
9
+ build_gem
13
10
  end
14
11
 
15
- def deployGem
12
+ task :build_change_log do
13
+ closed_milestones = Octokit.milestones REPO, {:state => "closed"}
14
+
15
+ version_to_milestone = Hash.new
16
+ versions = Array.new
17
+
18
+ closed_milestones.each do |milestone|
19
+ version = Gem::Version.new(milestone.title)
20
+ version_to_milestone.store version, milestone
21
+ versions.push version
22
+ end
23
+
24
+ versions = versions.sort.reverse
25
+
26
+ change_log = File.open('CHANGELOG.md', 'w')
27
+
16
28
  begin
17
- puts "Pushing the gem to rubygems.org"
18
- runCommand "gem push knife-tar*.gem"
29
+ change_log.write "Change Log\n"
30
+ change_log.write "==========\n"
31
+ change_log.write "\n"
32
+
33
+ versions.each do |version|
34
+ milestone = version_to_milestone[version]
35
+ change_log.write generate_milestone_markdown(milestone)
36
+ change_log.write "\n"
37
+ end
19
38
  ensure
20
- system "rm -f knife-tar*.gem"
39
+ change_log.close
21
40
  end
22
41
  end
23
42
 
24
- def release
43
+ task :release do
44
+
45
+ # Get current version
46
+ version = IO.read(File.join(File.dirname(__FILE__), 'VERSION')).chomp
47
+
48
+ # Update change log
49
+ puts "Updating change log ..."
50
+ update_change_log version
51
+ puts "Change log updated!"
52
+
25
53
 
26
- #Tag the release
27
- puts "Tagging the release"
28
- runCommand "git tag -a #{rawVersion} -m 'Released #{rawVersion}'"
29
- runCommand "git push origin #{rawVersion}"
54
+ # Publish the gem
55
+ deploy
56
+
57
+ # Tag the release
58
+ puts "Tagging the #{version} release ..."
59
+ run_command "git tag -a #{version} -m 'Released #{version}'"
60
+ run_command "git push origin #{version}"
61
+ puts "Release tagged!"
30
62
 
31
- # Update bump VERSION file
32
- rawVersion = `cat VERSION`.chomp
33
- versions = rawVersion.split "."
63
+ # Bump VERSION file
64
+ versions = version.split "."
34
65
  versions[1] = versions[1].to_i + 1
35
- newVersion = versions.join "."
36
66
 
37
- puts "Changing version from #{rawVersion} to #{newVersion}"
67
+ # Reset bug number if available
68
+ if versions.size == 3
69
+ versions[2] = 0
70
+ end
38
71
 
39
- runCommand "echo '#{newVersion}' > VERSION"
72
+ new_version = versions.join "."
40
73
 
41
- #Commit the updated VERSION file
42
- puts "Commiting the new VERSION file"
43
- runCommand "git add VERSION"
44
- runCommand "git commit -m 'Released #{rawVersions} and bumped version to #{newVersion}'"
45
- runCommand "git push origin master"
74
+ puts "Updating version from #{version} to #{new_version} ..."
75
+ File.open('VERSION', 'w') { |file| file.write(new_version) }
76
+ puts "Version updated!"
46
77
 
78
+ # Commit the updated VERSION file
79
+ puts "Commiting the new version ..."
80
+ run_command "git add VERSION"
81
+ run_command "git commit -m 'Released #{version} and bumped version to #{new_version}'"
82
+ run_command "git push origin HEAD"
83
+ puts "Version commited!"
84
+ end
85
+
86
+ def build_gem
87
+ puts "Building the gem ..."
88
+ run_command "gem build knife-tar.gemspec"
89
+ puts "Gem built!"
90
+ end
91
+
92
+ def deploy
93
+ begin
94
+ build_gem
95
+
96
+ puts "Publishing the gem ..."
97
+ run_command "gem push knife-tar*.gem"
98
+ puts "Gem published!"
99
+ ensure
100
+ system "rm -f knife-tar*.gem"
101
+ end
47
102
  end
48
103
 
49
- def runCommand command
50
- output = system command
51
- unless output
52
- # Removes changes to tracked files
53
- system "git reset --hard"
104
+ def update_change_log version
105
+ change_log_lines = IO.read(File.join(File.dirname(__FILE__), 'CHANGELOG.md')).split("\n")
106
+
107
+ change_log = File.open('CHANGELOG.md', 'w')
108
+
109
+ begin
110
+
111
+ # Keep change log title
112
+ change_log.write change_log_lines.shift
113
+ change_log.write "\n"
114
+ change_log.write change_log_lines.shift
115
+ change_log.write "\n"
116
+ change_log.write "\n"
54
117
 
55
- # Removes any new un-tracked files
56
- system "git clean -f -d"
118
+ # Write new milestone info
119
+ change_log.write generate_milestone_markdown(milestone(version))
57
120
 
58
- raise "Command : #{command} failed"
121
+ # Add previous change log info
122
+ change_log_lines.each do |line|
123
+ change_log.write line
124
+ change_log.write "\n"
125
+ end
126
+
127
+ ensure
128
+ change_log.close
129
+ end
130
+
131
+ run_command "git add CHANGELOG.md"
132
+ run_command "git commit -m 'Added #{version} to change log'"
133
+ run_command "git push origin HEAD"
134
+ end
135
+
136
+ def generate_milestone_markdown milestone
137
+ strings = Array.new
138
+
139
+ title = "[#{milestone.title}](https://github.com/#{REPO}/issues?milestone=#{milestone.number}&state=closed)"
140
+
141
+ strings.push "#{title}"
142
+ strings.push "-" * title.length
143
+ strings.push ""
144
+
145
+ issues = Octokit.issues REPO, {:milestone => milestone.number, :state => "closed"}
146
+
147
+ issues.each do |issue|
148
+ strings.push " * [#{issue_type issue}] [Issue-#{issue.number}](https://github.com/#{REPO}/issues/#{issue.number}) : #{issue.title}"
59
149
  end
60
- end
150
+
151
+ strings.push ""
152
+
153
+ strings.join "\n"
154
+ end
155
+
156
+ def milestone version
157
+ closedMilestones = Octokit.milestones REPO, {:state => "closed"}
158
+
159
+ closedMilestones.each do |milestone|
160
+ if milestone["title"] == version
161
+ return milestone
162
+ end
163
+ end
164
+
165
+ openMilestones = Octokit.milestones REPO
166
+
167
+ openMilestones.each do |milestone|
168
+ if milestone["title"] == version
169
+ return milestone
170
+ end
171
+ end
172
+
173
+ raise "Unable to find milestone with title [#{version}]"
174
+ end
175
+
176
+ def issue_type issue
177
+ labels = Array.new
178
+ issue.labels.each do |label|
179
+ labels.push label.name.capitalize
180
+ end
181
+ labels.join "/"
182
+ end
183
+
184
+ def run_command command
185
+ output = `#{command}`
186
+ unless $?.success?
187
+ raise "Command : [#{command}] failed.\nOutput : \n#{output}"
188
+ end
189
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knife-tar
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bryan Baugher
@@ -9,22 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-01-11 00:00:00.000000000 Z
12
+ date: 2014-02-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: chef
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - '>='
18
+ - - ~>
19
19
  - !ruby/object:Gem::Version
20
- version: 0.10.0
20
+ version: '10.12'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - '>='
25
+ - - ~>
26
26
  - !ruby/object:Gem::Version
27
- version: 0.10.0
27
+ version: '10.12'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: rake
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -86,7 +86,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
86
86
  - !ruby/object:Gem::Version
87
87
  version: '0'
88
88
  requirements: []
89
- rubyforge_project:
89
+ rubyforge_project: nowarning
90
90
  rubygems_version: 2.0.3
91
91
  signing_key:
92
92
  specification_version: 4