buildar 0.2.0.1 → 0.3.0.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.
- data/VERSION +1 -1
- data/rakefile.rb +89 -77
- metadata +1 -1
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0.1
|
data/rakefile.rb
CHANGED
@@ -6,107 +6,119 @@ Rake::TestTask.new :test do |t|
|
|
6
6
|
t.pattern = 'test/*.rb'
|
7
7
|
end
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
9
|
+
module Buildar
|
10
|
+
##############################################
|
11
|
+
# Project-specific settings. Edit as needed.
|
12
|
+
#
|
13
|
+
#
|
14
|
+
PROJECT_ROOT = File.dirname(__FILE__)
|
15
|
+
PROJECT_NAME = File.split(PROJECT_ROOT).last
|
16
|
+
VERSION_FILE = File.join(PROJECT_ROOT, 'VERSION')
|
17
|
+
MANIFEST_FILE = File.join(PROJECT_ROOT, 'MANIFEST.txt')
|
18
|
+
|
19
|
+
USE_GIT = true
|
20
|
+
GIT_COMMIT_VERSION = true # commit version bump automatically
|
21
|
+
PUBLISH = {
|
22
|
+
rubygems: true, # publish .gem to http://rubygems.org/
|
23
|
+
}
|
24
|
+
|
25
|
+
def self.gemspec
|
26
|
+
Gem::Specification.new do |s|
|
27
|
+
# Static assignments
|
28
|
+
s.name = PROJECT_NAME
|
29
|
+
s.summary = "FIX"
|
30
|
+
s.description = "FIX"
|
31
|
+
s.authors = ["FIX"]
|
32
|
+
s.email = "FIX@FIX.COM"
|
33
|
+
s.homepage = "http://FIX.COM/"
|
34
|
+
s.licenses = ['FIX']
|
35
|
+
|
36
|
+
# Dynamic assignments
|
37
|
+
s.files = manifest
|
38
|
+
s.version = version
|
39
|
+
s.date = Time.now.strftime("%Y-%m-%d")
|
40
|
+
|
41
|
+
# s.add_runtime_dependency "rest-client", ["~> 1"]
|
42
|
+
# s.add_runtime_dependency "json", ["~> 1"]
|
43
|
+
s.add_development_dependency "minitest", [">= 0"]
|
44
|
+
s.add_development_dependency "rake", [">= 0"]
|
45
|
+
end
|
46
|
+
end
|
47
|
+
#
|
48
|
+
#
|
49
|
+
# End project-specific settings.
|
50
|
+
################################
|
51
|
+
|
52
|
+
def self.version
|
53
|
+
File.read(VERSION_FILE).chomp
|
54
|
+
end
|
55
|
+
|
56
|
+
def self.manifest
|
57
|
+
File.readlines(MANIFEST_FILE).map { |line| line.chomp }
|
58
|
+
end
|
59
|
+
|
60
|
+
def self.write_version new_version
|
61
|
+
File.open(VERSION_FILE, 'w') { |f| f.write(new_version) }
|
62
|
+
end
|
63
|
+
|
64
|
+
# e.g. bump(:minor, '1.2.3') #=> '1.3.0'
|
65
|
+
# only works for integers delimited by periods (dots)
|
66
|
+
#
|
67
|
+
def self.bump(position, version)
|
68
|
+
pos = [:major, :minor, :patch, :build].index(position) || position
|
69
|
+
places = version.split('.')
|
70
|
+
raise "bad position: #{pos} (for version #{version})" unless places[pos]
|
71
|
+
places.map.with_index { |place, i|
|
72
|
+
if i < pos
|
73
|
+
place
|
74
|
+
elsif i == pos
|
75
|
+
place.to_i + 1
|
76
|
+
else
|
77
|
+
0
|
78
|
+
end
|
79
|
+
}.join('.')
|
80
|
+
end
|
81
|
+
end
|
18
82
|
|
19
|
-
|
20
|
-
|
83
|
+
task :version do
|
84
|
+
puts "#{Buildar::PROJECT_NAME} #{Buildar.version}"
|
21
85
|
end
|
22
86
|
|
23
87
|
task :message do
|
24
88
|
unless ENV['message']
|
25
89
|
puts "Enter a one-line message:"
|
26
|
-
print "
|
90
|
+
print "> "
|
27
91
|
ENV['message'] = $stdin.gets.chomp
|
28
92
|
end
|
29
93
|
end
|
30
94
|
|
31
|
-
task :version do
|
32
|
-
puts "#{PROJECT_NAME} #{version}"
|
33
|
-
end
|
34
|
-
|
35
95
|
task :tag => [:test] do
|
36
|
-
if USE_GIT
|
37
|
-
tagname = "v#{version}"
|
96
|
+
if Buildar::USE_GIT
|
38
97
|
message = ENV['message'] || "auto-tagged #{tagname} by Rake"
|
39
|
-
sh "git tag -a #{
|
98
|
+
sh "git tag -a 'v#{Buildar.version}' -m '#{message}'"
|
40
99
|
sh "git push origin --tags"
|
41
100
|
end
|
42
101
|
end
|
43
102
|
|
44
|
-
def manifest
|
45
|
-
File.readlines(MANIFEST_FILE).map { |line| line.chomp }
|
46
|
-
end
|
47
|
-
|
48
103
|
task :manifest do
|
49
|
-
puts manifest.join("\n")
|
104
|
+
puts Buildar.manifest.join("\n")
|
50
105
|
end
|
51
106
|
|
52
107
|
task :build => [:test, :bump_build] do
|
53
|
-
spec = Gem::Specification.new do |s|
|
54
|
-
# Static assignments
|
55
|
-
s.name = PROJECT_NAME
|
56
|
-
s.summary = "FIX"
|
57
|
-
s.description = "FIX"
|
58
|
-
s.authors = ["FIX"]
|
59
|
-
s.email = "FIX@FIX.COM"
|
60
|
-
s.homepage = "http://FIX.COM/"
|
61
|
-
s.licenses = ['FIX']
|
62
|
-
|
63
|
-
# Dynamic assignments
|
64
|
-
s.files = manifest
|
65
|
-
s.version = version
|
66
|
-
s.date = Time.now.strftime("%Y-%m-%d")
|
67
|
-
|
68
|
-
# s.add_runtime_dependency "rest-client", ["~> 1"]
|
69
|
-
# s.add_runtime_dependency "json", ["~> 1"]
|
70
|
-
s.add_development_dependency "minitest", [">= 0"]
|
71
|
-
s.add_development_dependency "rake", [">= 0"]
|
72
|
-
end
|
73
|
-
|
74
108
|
# we're definining the task at runtime, rather than requiretime
|
75
109
|
# so that the gemspec will reflect any version bumping since requiretime
|
76
110
|
#
|
77
|
-
Gem::PackageTask.new(
|
111
|
+
Gem::PackageTask.new(Buildar.gemspec).define
|
78
112
|
Rake::Task["package"].invoke
|
79
113
|
end
|
80
114
|
|
81
|
-
# e.g. bump(:minor, '1.2.3') #=> '1.3.0'
|
82
|
-
# only works for integers delimited by periods (dots)
|
83
|
-
#
|
84
|
-
def bump(position, version)
|
85
|
-
pos = [:major, :minor, :patch, :build].index(position) || position
|
86
|
-
places = version.split('.')
|
87
|
-
raise "bad position: #{pos} (for version #{version})" unless places[pos]
|
88
|
-
places.map.with_index { |place, i|
|
89
|
-
if i < pos
|
90
|
-
place
|
91
|
-
elsif i == pos
|
92
|
-
place.to_i + 1
|
93
|
-
else
|
94
|
-
0
|
95
|
-
end
|
96
|
-
}.join('.')
|
97
|
-
end
|
98
|
-
|
99
|
-
def write_version new_version
|
100
|
-
File.open(VERSION_FILE, 'w') { |f| f.write(new_version) }
|
101
|
-
end
|
102
|
-
|
103
115
|
[:major, :minor, :patch, :build].each { |v|
|
104
116
|
task "bump_#{v}" do
|
105
|
-
old_version = version
|
106
|
-
new_version = bump(v, old_version)
|
117
|
+
old_version = Buildar.version
|
118
|
+
new_version = Buildar.bump(v, old_version)
|
107
119
|
puts "bumping #{old_version} to #{new_version}"
|
108
|
-
write_version new_version
|
109
|
-
if USE_GIT and GIT_COMMIT_VERSION
|
120
|
+
Buildar.write_version new_version
|
121
|
+
if Buildar::USE_GIT and Buildar::GIT_COMMIT_VERSION
|
110
122
|
sh "git add VERSION"
|
111
123
|
sh "git commit -m 'rake bump_#{v} to #{new_version}'"
|
112
124
|
end
|
@@ -115,7 +127,7 @@ end
|
|
115
127
|
task :bump => [:bump_patch]
|
116
128
|
|
117
129
|
task :verify_publish_credentials do
|
118
|
-
if PUBLISH[:rubygems]
|
130
|
+
if Buildar::PUBLISH[:rubygems]
|
119
131
|
creds = '~/.gem/credentials'
|
120
132
|
fp = File.expand_path(creds)
|
121
133
|
raise "#{creds} does not exist" unless File.exists?(fp)
|
@@ -124,9 +136,9 @@ task :verify_publish_credentials do
|
|
124
136
|
end
|
125
137
|
|
126
138
|
task :publish => [:verify_publish_credentials] do
|
127
|
-
if PUBLISH[:rubygems]
|
128
|
-
fragment = "-#{version}.gem"
|
129
|
-
pkg_dir = File.join(PROJECT_ROOT, 'pkg')
|
139
|
+
if Buildar::PUBLISH[:rubygems]
|
140
|
+
fragment = "-#{Buildar.version}.gem"
|
141
|
+
pkg_dir = File.join(Buildar::PROJECT_ROOT, 'pkg')
|
130
142
|
Dir.chdir(pkg_dir) {
|
131
143
|
candidates = Dir.glob "*#{fragment}"
|
132
144
|
case candidates.length
|
@@ -143,7 +155,7 @@ end
|
|
143
155
|
|
144
156
|
task :gitpush do
|
145
157
|
# may prompt
|
146
|
-
sh "git push origin" if USE_GIT
|
158
|
+
sh "git push origin" if Buildar::USE_GIT
|
147
159
|
# this kills the automation
|
148
160
|
# use key-based auth?
|
149
161
|
# consider a timeout?
|