cookbook-release 1.1.5 → 1.1.6
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.
- checksums.yaml +8 -8
- data/cookbook-release.gemspec +1 -1
- data/lib/cookbook-release/changelog.rb +2 -1
- data/lib/cookbook-release/git-utilities.rb +3 -3
- data/spec/git_spec.rb +20 -12
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NjE4ODBmMzczNjhkNzcyNGZlZTJlYjZjYTZjYzU5ZDlmNWE0NWYyNw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YmZlZmI2ZTUzN2M5ZGI0ZmI5ZTI2NGM4YWQyZTY2ZjczNzEyODQyNg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MzY5NWU3ZjhjZDc0MmMyMTM3MGQ0NTMxNDFlMTg3Njk2MjlhYjI1ODJhNDE2
|
10
|
+
YWQyZjRjYmFmYWU3MzIzYTc4OTAzNmU0OGE0NDY3NWIwZmZkNTY2ZTUxNjRm
|
11
|
+
NWJhOGJjOTViYjc0NTY5Nzk3NWFkOTNmMDdhMTc3NjhkOWNlNzQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YjZkY2JiMjdhOTExZmFmMGFlMzdjZTQwNDg4YWY1YzYyYzI5ZGU2MDQzMjk0
|
14
|
+
OTBhZTk1MmRmOTQzZmQ2Yjc2ZjgyMTk5MGJmOTViNDBmZTIyZjVkYmFkMmY5
|
15
|
+
MTFhZGVlZGI0MjIyNTI4MmU2NTQzZGNjOWEzZmNkMDE4OTU3YmQ=
|
data/cookbook-release.gemspec
CHANGED
@@ -6,7 +6,7 @@ require 'English'
|
|
6
6
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
8
|
spec.name = 'cookbook-release'
|
9
|
-
spec.version = '1.1.
|
9
|
+
spec.version = '1.1.6'
|
10
10
|
spec.authors = ['Grégoire Seux']
|
11
11
|
spec.email = 'g.seux@criteo.com'
|
12
12
|
spec.summary = 'Provide primitives (and rake tasks) to release a cookbook'
|
@@ -4,6 +4,7 @@ module CookbookRelease
|
|
4
4
|
DEFAULT_OPTS = {
|
5
5
|
expand_major: true,
|
6
6
|
expand_risky: true,
|
7
|
+
short_sha: true
|
7
8
|
}
|
8
9
|
|
9
10
|
def initialize(git, opts = {})
|
@@ -47,7 +48,7 @@ module CookbookRelease
|
|
47
48
|
|
48
49
|
def changelog
|
49
50
|
ref = ENV['RELEASE_BRANCH'] || 'origin/master'
|
50
|
-
@git.compute_changelog(ref)
|
51
|
+
@git.compute_changelog(ref, @opts[:short_sha])
|
51
52
|
end
|
52
53
|
end
|
53
54
|
end
|
@@ -19,7 +19,7 @@ module CookbookRelease
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def self.git?(dir)
|
22
|
-
|
22
|
+
!@g.nil?
|
23
23
|
end
|
24
24
|
|
25
25
|
def reset_command(new_version)
|
@@ -62,13 +62,13 @@ module CookbookRelease
|
|
62
62
|
last.to_version
|
63
63
|
end
|
64
64
|
|
65
|
-
def compute_changelog(since)
|
65
|
+
def compute_changelog(since, short_sha = true)
|
66
66
|
commits = @g.log.between(since, 'HEAD').map do |commit|
|
67
67
|
message = commit.message.lines.map(&:chomp).compact.delete_if(&:empty?)
|
68
68
|
Commit.new(
|
69
69
|
author: commit.author.name,
|
70
70
|
subject: message.delete_at(0),
|
71
|
-
hash: commit.sha,
|
71
|
+
hash: short_sha ? commit.sha[0,7] : commit.sha,
|
72
72
|
body: message.empty? ? nil : message.join('\n')
|
73
73
|
)
|
74
74
|
end.reject { |commit| commit[:subject] =~ /^Merge branch (.*) into/i }
|
data/spec/git_spec.rb
CHANGED
@@ -12,6 +12,8 @@ describe CookbookRelease::GitUtilities do
|
|
12
12
|
git init .
|
13
13
|
git config user.email "you@example.com"
|
14
14
|
git config user.name Hello
|
15
|
+
git commit --allow-empty -m 'none'
|
16
|
+
git tag 1.0.0
|
15
17
|
EOH
|
16
18
|
cmds.split("\n").each do |cmd|
|
17
19
|
cmd = Mixlib::ShellOut.new(cmd)
|
@@ -65,10 +67,6 @@ describe CookbookRelease::GitUtilities do
|
|
65
67
|
describe '.compute_last_release' do
|
66
68
|
it 'finds the last release' do
|
67
69
|
cmds = <<-EOH
|
68
|
-
touch toto
|
69
|
-
git add toto
|
70
|
-
git commit -m'none'
|
71
|
-
git tag 1.0.0
|
72
70
|
git commit --allow-empty -m 'none'
|
73
71
|
git tag 1.2.43
|
74
72
|
git commit --allow-empty -m 'none'
|
@@ -88,10 +86,6 @@ describe CookbookRelease::GitUtilities do
|
|
88
86
|
describe '.compute_changelog' do
|
89
87
|
it 'find the proper changelog' do
|
90
88
|
cmds = <<-EOH
|
91
|
-
touch toto
|
92
|
-
git add toto
|
93
|
-
git commit -m'none'
|
94
|
-
git tag 1.0.0
|
95
89
|
git commit --allow-empty -m 'A commit'
|
96
90
|
git commit --allow-empty -m 'Another commit'
|
97
91
|
git commit --allow-empty -m 'A third one'
|
@@ -109,10 +103,6 @@ describe CookbookRelease::GitUtilities do
|
|
109
103
|
|
110
104
|
it 'parse correctly commits' do
|
111
105
|
cmds = <<-EOH
|
112
|
-
touch toto
|
113
|
-
git add toto
|
114
|
-
git commit -m'none'
|
115
|
-
git tag 1.0.0
|
116
106
|
git commit --allow-empty -m "subject" -m "body"
|
117
107
|
git commit --allow-empty -m "without body"
|
118
108
|
EOH
|
@@ -128,5 +118,23 @@ describe CookbookRelease::GitUtilities do
|
|
128
118
|
expect(changelog[1][:body]).to eq('body')
|
129
119
|
expect(changelog[0][:body]).to be_nil
|
130
120
|
end
|
121
|
+
|
122
|
+
it 'can use short sha' do
|
123
|
+
cmd = Mixlib::ShellOut.new('git commit --allow-empty -m "subject"')
|
124
|
+
cmd.run_command
|
125
|
+
cmd.error!
|
126
|
+
|
127
|
+
changelog = git.compute_changelog('HEAD~1', true)
|
128
|
+
expect(changelog[0][:hash].size).to eq(7)
|
129
|
+
end
|
130
|
+
|
131
|
+
it 'can use long sha' do
|
132
|
+
cmd = Mixlib::ShellOut.new('git commit --allow-empty -m "subject"')
|
133
|
+
cmd.run_command
|
134
|
+
cmd.error!
|
135
|
+
|
136
|
+
changelog = git.compute_changelog('HEAD~1', false)
|
137
|
+
expect(changelog[0][:hash].size).to eq(40)
|
138
|
+
end
|
131
139
|
end
|
132
140
|
end
|