cookbook-release 1.4.6 → 1.5.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.
- checksums.yaml +4 -4
- data/cookbook-release.gemspec +1 -1
- data/lib/cookbook-release/git-utilities.rb +11 -2
- data/lib/cookbook-release/release.rb +9 -2
- data/spec/git_spec.rb +6 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '0438ab5b35c35ac88fbc7f99b58e43882fe7fc2cb2d4299ed1d609cd0b702d4d'
|
4
|
+
data.tar.gz: 7390fd2694a610a5ac4fe0b81f4fdc6e7cbee9e4381d96f7b0ff9573f7c70cd0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 27ff8bf88d9e8453cfa5a46b45dd74e59ac5a8ba5e18b4b988b4acdf2a6b7d7b4e29c057ad73e402fcec7065b1662d5b8003496e100ce8592787da8441ab2a5f
|
7
|
+
data.tar.gz: 6e44f603a8aa0801968d3eea30574ef3b0c8751cb98c80b2d9f57f2511e80414d0f1cf978b4688105a58140c3e8123eb1437eeed355bb2507f85b5b53c181e23
|
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.
|
9
|
+
spec.version = '1.5.1'
|
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'
|
@@ -23,6 +23,12 @@ module CookbookRelease
|
|
23
23
|
File.directory?(::File.join(dir, '.git'))
|
24
24
|
end
|
25
25
|
|
26
|
+
def self.find_root(dir = Dir.pwd)
|
27
|
+
cmd = Mixlib::ShellOut.new("git rev-parse --show-toplevel", cwd: dir)
|
28
|
+
cmd.run_command
|
29
|
+
cmd.error? ? nil : cmd.stdout.chomp
|
30
|
+
end
|
31
|
+
|
26
32
|
def reset_command(new_version)
|
27
33
|
remote = choose_remote
|
28
34
|
"git tag -d #{new_version} ; git push #{remote} :#{new_version}"
|
@@ -43,11 +49,13 @@ module CookbookRelease
|
|
43
49
|
def _compute_last_release
|
44
50
|
tag = Mixlib::ShellOut.new([
|
45
51
|
'git describe',
|
52
|
+
"--abbrev=0",
|
46
53
|
"--tags",
|
47
54
|
"--match \"#{@tag_prefix}[0-9]*\.[0-9]*\.[0-9]*\""
|
48
55
|
].join(" "), @shellout_opts)
|
49
56
|
tag.run_command
|
50
|
-
tag.stdout.
|
57
|
+
rel = tag.stdout.sub(/^#{@tag_prefix}/, '').chomp
|
58
|
+
rel.empty? ? nil : rel
|
51
59
|
end
|
52
60
|
|
53
61
|
def has_any_release?
|
@@ -64,7 +72,8 @@ module CookbookRelease
|
|
64
72
|
end
|
65
73
|
|
66
74
|
def compute_changelog(since, short_sha = true)
|
67
|
-
@
|
75
|
+
ref = "#{@tag_prefix}#{since}"
|
76
|
+
@g.log(500).object(@sub_dir).between(ref, 'HEAD').map do |commit|
|
68
77
|
message = commit.message.lines.map(&:chomp).compact.delete_if(&:empty?)
|
69
78
|
Commit.new(
|
70
79
|
author: commit.author.name,
|
@@ -5,13 +5,20 @@ module CookbookRelease
|
|
5
5
|
def self.current_version(file)
|
6
6
|
dir = File.dirname(file)
|
7
7
|
version_file = File.join(dir, '.cookbook_version')
|
8
|
+
git_root = GitUtilities.find_root(dir)
|
8
9
|
|
9
|
-
if !GitUtilities.git?(dir)
|
10
|
+
if !GitUtilities.git?(dir) && git_root.nil?
|
10
11
|
return File.read(version_file) if File.exist?(version_file)
|
11
12
|
raise "Can't determine version in a non-git environment without #{version_file}"
|
12
13
|
end
|
13
14
|
|
14
|
-
|
15
|
+
git = if git_root == dir
|
16
|
+
GitUtilities.new(cwd: dir)
|
17
|
+
else
|
18
|
+
GitUtilities.new(cwd: git_root, tag_prefix: "#{File.basename(dir)}-", sub_dir: dir)
|
19
|
+
end
|
20
|
+
|
21
|
+
r = Release.new(git)
|
15
22
|
begin
|
16
23
|
r.new_version.first
|
17
24
|
rescue ExistingRelease
|
data/spec/git_spec.rb
CHANGED
@@ -44,6 +44,12 @@ describe CookbookRelease::GitUtilities do
|
|
44
44
|
expect(CookbookRelease::GitUtilities.git?(tmp)).to be(true)
|
45
45
|
FileUtils.rm_rf(tmp)
|
46
46
|
end
|
47
|
+
|
48
|
+
it 'finds repo\'s root from subdir' do
|
49
|
+
subdir = 'cookbooks/mycookbook'
|
50
|
+
FileUtils.mkdir_p(subdir)
|
51
|
+
expect(CookbookRelease::GitUtilities.find_root(subdir)).to eq(Dir.pwd)
|
52
|
+
end
|
47
53
|
end
|
48
54
|
|
49
55
|
describe '.clean_index(?|!)' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cookbook-release
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Grégoire Seux
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-05-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: semantic
|
@@ -194,7 +194,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
194
194
|
- !ruby/object:Gem::Version
|
195
195
|
version: '0'
|
196
196
|
requirements: []
|
197
|
-
|
197
|
+
rubyforge_project:
|
198
|
+
rubygems_version: 2.7.6.2
|
198
199
|
signing_key:
|
199
200
|
specification_version: 4
|
200
201
|
summary: Provide primitives (and rake tasks) to release a cookbook
|