knife-tar 1.3.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
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