-
Notifications
You must be signed in to change notification settings - Fork 0
/
release.rake
51 lines (44 loc) · 965 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
48
49
50
51
# frozen_string_literal: true
task 'release:require-version' do
unless ENV['VERSION']
warn('usage: VERSION=x.y.z rake release')
exit
end
end
# bumps the VERSION file
task 'release:bump-version' do
sh("echo '#{$VERSION}' > VERSION")
sh('git add VERSION')
end
# ensures all of the required credentials are present
task 'release:check' => [
'release:require-version',
'github:require-access-token',
'git:require-clean-workspace'
]
# builds release artifacts
task 'release:build' => [
'changelog:version',
'release:bump-version',
'git:tag',
'gems:build'
]
# deploys release artifacts
task 'release:publish' => [
'release:require-version',
'git:push',
'gems:push',
'github:release'
]
# post release tasks
task 'release:cleanup' => [
'changelog:next_release'
]
desc 'Public release, `VERSION=x.y.z rake release`'
task 'release' => [
'release:check',
'test',
'release:build',
'release:publish',
'release:cleanup'
]