-
Notifications
You must be signed in to change notification settings - Fork 0
/
release.rake
47 lines (40 loc) · 968 Bytes
/
release.rake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
def version
version = ENV['VERSION'].to_s.sub(/^v/, '')
if version.empty?
warn("usage: VERSION=x.y.z rake release:tag")
exit
end
version
end
namespace :release do
task :require_version do
version
end
task :require_clean do
unless `git diff --shortstat 2> /dev/null | tail -n1` == ''
warn('workspace must be clean to release')
exit(1)
end
end
task :tag do
path = 'lib/auto_deploy_test/version.rb'
file = File.read(path)
file = file.gsub(/VERSION = '.+?'/, "VERSION = '#{version}'")
File.open(path, 'w') { |f| f.write(file) }
sh("git add lib/auto_deploy_test/version.rb")
sh("git commit -m \"Tag release v#{version}\"")
sh("git tag v#{version}")
end
task :push do
sh('git push origin')
sh('git push origin --tags')
end
end
desc "Releases a new version"
task :release => [
'release:require_version',
'test',
'changelog:version',
'release:tag',
'release:push',
]