cookbook-release 1.4.3 → 1.7.0
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/.github/workflows/ci.yml +15 -0
- data/.github/workflows/release.yml +18 -0
- data/Rakefile +6 -0
- data/cookbook-release.gemspec +4 -2
- data/lib/cookbook-release/changelog.rb +41 -15
- data/lib/cookbook-release/commit.rb +13 -1
- data/lib/cookbook-release/git-utilities.rb +15 -2
- data/lib/cookbook-release/release.rb +10 -3
- data/lib/cookbook-release/supermarket.rb +4 -4
- data/spec/changelog_spec.rb +2 -2
- data/spec/commit_spec.rb +12 -0
- data/spec/git_spec.rb +17 -2
- data/spec/release_spec.rb +2 -1
- metadata +26 -6
- data/.travis.yml +0 -11
- data/Rakefile.rb +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 59ea3c1e5d1d222c334a409f63333f4a7339cebc36655043656fd1c26c78ec2f
|
4
|
+
data.tar.gz: 59d2e2dfb5db2d3bd9e28fc341b0839c0fdb63a0d8483764528cb2bede290320
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5b292dadbf789958681065228a9732c0614008e9cca74a8e3bcf478cbbf42da2c0bef73f8a6ad2ae52309b0ac47573a6038ddd62480fb4c73afdab76616be4f1
|
7
|
+
data.tar.gz: 5f856842d4d1588c21d3961d29f9346b8b41000e3054933dcfbdba830a3811703b5894b6ac41cdd530e9bb6d2e6a8911eb65874cfd423dfc0b98c2dc82f2f58f
|
@@ -0,0 +1,15 @@
|
|
1
|
+
name: Tests
|
2
|
+
on: [push, pull_request]
|
3
|
+
jobs:
|
4
|
+
test:
|
5
|
+
runs-on: ubuntu-latest
|
6
|
+
strategy:
|
7
|
+
matrix:
|
8
|
+
ruby-version: ['2.5', '2.7']
|
9
|
+
steps:
|
10
|
+
- uses: actions/checkout@v2
|
11
|
+
- uses: ruby/setup-ruby@v1
|
12
|
+
with:
|
13
|
+
ruby-version: ${{ matrix.ruby-version }}
|
14
|
+
bundler-cache: true
|
15
|
+
- run: bundle exec rake
|
@@ -0,0 +1,18 @@
|
|
1
|
+
name: Release
|
2
|
+
on:
|
3
|
+
push:
|
4
|
+
tags: [ '*' ]
|
5
|
+
jobs:
|
6
|
+
release:
|
7
|
+
runs-on: ubuntu-latest
|
8
|
+
steps:
|
9
|
+
- uses: actions/checkout@v2
|
10
|
+
- uses: ruby/setup-ruby@v1
|
11
|
+
with:
|
12
|
+
ruby-version: 2.7
|
13
|
+
- run: |
|
14
|
+
install -D -m 600 <(echo -e "---\n:rubygems_api_key: ${RUBYGEMS_API_KEY}") $HOME/.gem/credentials
|
15
|
+
gem build *.gemspec
|
16
|
+
gem push *.gem
|
17
|
+
env:
|
18
|
+
RUBYGEMS_API_KEY: ${{secrets.RUBYGEMS_API_KEY}}
|
data/Rakefile
ADDED
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.7.0'
|
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'
|
@@ -22,8 +22,10 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_dependency 'semantic'
|
23
23
|
spec.add_dependency 'highline'
|
24
24
|
spec.add_dependency 'mixlib-shellout'
|
25
|
-
|
25
|
+
# TODO: support Chef 17 and leverage knife gem at some point
|
26
|
+
spec.add_dependency 'chef', '>= 12.18.31', '< 17.0' # knife code has been moved to dedicated gem starting with Chef 17
|
26
27
|
spec.add_dependency 'git-ng' # see https://github.com/schacon/ruby-git/issues/307
|
28
|
+
spec.add_dependency 'unicode-emoji'
|
27
29
|
|
28
30
|
|
29
31
|
spec.add_development_dependency 'rspec'
|
@@ -11,6 +11,7 @@ module CookbookRelease
|
|
11
11
|
RISKY = 'RISKY/BREAKING (details below):'
|
12
12
|
NO_RISKY = 'NO RISKY/BREAKING COMMITS. READ FULL CHANGELOG.'
|
13
13
|
NON_NODES_ONLY = 'Non-risky/major, Non-node-only commits'
|
14
|
+
NODES_ONLY = 'Commits impacting only nodes'
|
14
15
|
FULL = 'Full changelog:'
|
15
16
|
DETAILS = 'Details of risky commits:'
|
16
17
|
|
@@ -109,28 +110,53 @@ module CookbookRelease
|
|
109
110
|
end
|
110
111
|
|
111
112
|
def markdown_priority_nodes
|
112
|
-
cl = changelog
|
113
|
-
risky_commits = cl.select { |c| c.risky? || c.major? }
|
114
|
-
not_nodes_only_commits = cl.reject { |c| c.nodes_only? || c.risky? || c.major? }
|
115
113
|
result = []
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
114
|
+
result << append_risky(changelog)
|
115
|
+
result << append_by_impact(changelog)
|
116
|
+
result << append_risky_details(changelog)
|
117
|
+
result
|
118
|
+
end
|
119
|
+
|
120
|
+
private
|
121
|
+
|
122
|
+
# @param changelog [Array<Commit>]
|
123
|
+
# @return [String] a string describing the changelog
|
124
|
+
def append_by_impact(changelog)
|
125
|
+
not_nodes_only_commits = changelog.reject { |c| c.nodes_only? || c.risky? || c.major? }
|
126
|
+
nodes_only_commits = changelog.select(&:nodes_only?)
|
127
|
+
output = []
|
121
128
|
if not_nodes_only_commits.any?
|
122
|
-
|
129
|
+
txt = not_nodes_only_commits.map { |c| c.to_s_markdown(false) }.join("\n")
|
130
|
+
output << "*#{NON_NODES_ONLY}*\n#{txt}\n"
|
123
131
|
end
|
124
|
-
|
125
|
-
|
132
|
+
if nodes_only_commits.any?
|
133
|
+
txt = nodes_only_commits.map { |c| c.to_s_markdown(false) }.join("\n")
|
134
|
+
output << "*#{NODES_ONLY}*\n#{txt}\n"
|
135
|
+
end
|
136
|
+
output.join
|
137
|
+
end
|
138
|
+
|
139
|
+
# @param changelog [Array<Commit>]
|
140
|
+
# @return [String] a string describing the changelog
|
141
|
+
def append_risky_details(changelog)
|
142
|
+
risky_commits = changelog.select { |c| c.risky? || c.major? }
|
126
143
|
if risky_commits.any?
|
127
|
-
|
128
|
-
|
144
|
+
"\n#{DETAILS}\n" + risky_commits.map { |c| c.to_s_markdown(true) }.join("\n")
|
145
|
+
else
|
146
|
+
''
|
129
147
|
end
|
130
|
-
result
|
131
148
|
end
|
132
149
|
|
133
|
-
|
150
|
+
# @param changelog [Array<Commit>]
|
151
|
+
# @return [String] a string describing the changelog
|
152
|
+
def append_risky(changelog)
|
153
|
+
risky_commits = changelog.select { |c| c.risky? || c.major? }
|
154
|
+
if risky_commits.any?
|
155
|
+
"*#{RISKY}*\n" << risky_commits.map { |c| c.to_s_markdown(false) }.join("\n") << "\n"
|
156
|
+
else
|
157
|
+
"*#{NO_RISKY}*\n\n"
|
158
|
+
end
|
159
|
+
end
|
134
160
|
|
135
161
|
def changelog
|
136
162
|
ref = ENV['RELEASE_BRANCH'] || 'origin/master'
|
@@ -1,3 +1,6 @@
|
|
1
|
+
require 'forwardable'
|
2
|
+
require 'unicode/emoji'
|
3
|
+
|
1
4
|
module CookbookRelease
|
2
5
|
class Commit
|
3
6
|
extend Forwardable
|
@@ -79,11 +82,20 @@ module CookbookRelease
|
|
79
82
|
else
|
80
83
|
result << "_#{self[:author]} <#{self[:email]}>_"
|
81
84
|
end
|
82
|
-
result <<
|
85
|
+
result << ' '
|
86
|
+
result << backtick_string(self[:subject])
|
83
87
|
result << "\n```\n#{strip_change_id(self[:body])}```" if full && self[:body]
|
84
88
|
result
|
85
89
|
end
|
86
90
|
|
91
|
+
def backtick_string(input)
|
92
|
+
s = input.gsub(/( )?(#{Unicode::Emoji::REGEX})( )?/, '` \2 `')
|
93
|
+
.gsub(/( )?``( )?/, '')
|
94
|
+
s += '`' unless s =~ /`$/
|
95
|
+
s = '`' + s unless s =~ /^`/
|
96
|
+
s
|
97
|
+
end
|
98
|
+
|
87
99
|
private
|
88
100
|
|
89
101
|
def strip_change_id(body)
|
@@ -8,6 +8,7 @@ module CookbookRelease
|
|
8
8
|
class GitUtilities
|
9
9
|
|
10
10
|
attr_accessor :no_prompt
|
11
|
+
attr_reader :sub_dir
|
11
12
|
|
12
13
|
def initialize(options={})
|
13
14
|
@tag_prefix = options[:tag_prefix] || ''
|
@@ -23,6 +24,15 @@ module CookbookRelease
|
|
23
24
|
File.directory?(::File.join(dir, '.git'))
|
24
25
|
end
|
25
26
|
|
27
|
+
def self.find_root(dir = Dir.pwd)
|
28
|
+
# Do not consider given dir as part of the git repo if not in git hierarchy or dir is not tracked
|
29
|
+
return if ::Mixlib::ShellOut.new('git ls-files --error-unmatch .', cwd: dir).run_command.error?
|
30
|
+
|
31
|
+
cmd = Mixlib::ShellOut.new("git rev-parse --show-toplevel", cwd: dir)
|
32
|
+
cmd.run_command
|
33
|
+
cmd.error? ? nil : cmd.stdout.chomp
|
34
|
+
end
|
35
|
+
|
26
36
|
def reset_command(new_version)
|
27
37
|
remote = choose_remote
|
28
38
|
"git tag -d #{new_version} ; git push #{remote} :#{new_version}"
|
@@ -43,11 +53,13 @@ module CookbookRelease
|
|
43
53
|
def _compute_last_release
|
44
54
|
tag = Mixlib::ShellOut.new([
|
45
55
|
'git describe',
|
56
|
+
"--abbrev=0",
|
46
57
|
"--tags",
|
47
58
|
"--match \"#{@tag_prefix}[0-9]*\.[0-9]*\.[0-9]*\""
|
48
59
|
].join(" "), @shellout_opts)
|
49
60
|
tag.run_command
|
50
|
-
tag.stdout.
|
61
|
+
rel = tag.stdout.sub(/^#{@tag_prefix}/, '').chomp
|
62
|
+
rel.empty? ? nil : rel
|
51
63
|
end
|
52
64
|
|
53
65
|
def has_any_release?
|
@@ -64,7 +76,8 @@ module CookbookRelease
|
|
64
76
|
end
|
65
77
|
|
66
78
|
def compute_changelog(since, short_sha = true)
|
67
|
-
@
|
79
|
+
ref = "#{@tag_prefix}#{since}"
|
80
|
+
@g.log(500).object(@sub_dir).between(ref, 'HEAD').map do |commit|
|
68
81
|
message = commit.message.lines.map(&:chomp).compact.delete_if(&:empty?)
|
69
82
|
Commit.new(
|
70
83
|
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
|
@@ -101,7 +108,7 @@ module CookbookRelease
|
|
101
108
|
exit 1 unless agreed
|
102
109
|
git.push_tag(new_version)
|
103
110
|
supermarket = Supermarket.new
|
104
|
-
supermarket.publish_ck(@category)
|
111
|
+
supermarket.publish_ck(@category, git.sub_dir)
|
105
112
|
rescue
|
106
113
|
puts HighLine.color("Release aborted, you have to reset to previous state manually", :red)
|
107
114
|
puts ":use with care: #{git.reset_command(new_version)}"
|
@@ -8,7 +8,7 @@ require 'json'
|
|
8
8
|
module CookbookRelease
|
9
9
|
class Supermarket
|
10
10
|
|
11
|
-
# This code is adapted from "knife cookbook share" and travis dpl provider
|
11
|
+
# This code is adapted from "knife cookbook share" and travis dpl provider
|
12
12
|
# for supermarket.
|
13
13
|
|
14
14
|
def initialize(opts={})
|
@@ -20,11 +20,11 @@ module CookbookRelease
|
|
20
20
|
|
21
21
|
include ::Chef::Mixin::ShellOut
|
22
22
|
|
23
|
-
def publish_ck(category)
|
24
|
-
ck = ::Chef::Cookbook::CookbookVersionLoader.new('.')
|
23
|
+
def publish_ck(category, path = nil)
|
24
|
+
ck = ::Chef::Cookbook::CookbookVersionLoader.new(path || '.')
|
25
25
|
ck.load!
|
26
26
|
cookbook = ck.cookbook_version
|
27
|
-
# we have to provide a rest option otherwise it will try to load a
|
27
|
+
# we have to provide a rest option otherwise it will try to load a
|
28
28
|
# client.pem key
|
29
29
|
::Chef::CookbookUploader.new(cookbook, rest: 'fake_rest').validate_cookbooks
|
30
30
|
|
data/spec/changelog_spec.rb
CHANGED
@@ -83,10 +83,10 @@ describe CookbookRelease::Changelog do
|
|
83
83
|
end
|
84
84
|
|
85
85
|
it 'expands the body with non-risky+non-nodes' do
|
86
|
-
expect(git).to receive(:compute_changelog).and_return(commits)
|
86
|
+
expect(git).to receive(:compute_changelog).and_return(commits).at_least(:once)
|
87
87
|
changelog = CookbookRelease::Changelog.new(git, expand_risky: true, nodes_only: true)
|
88
88
|
expect(changelog.markdown_priority_nodes.join('')).to include(
|
89
|
-
"\n*Non-risky/major, Non-node-only commits*\n*654321* _John Doe <j.doe@nobody.com>_ `hello`\n*
|
89
|
+
"\n*Non-risky/major, Non-node-only commits*\n*654321* _John Doe <j.doe@nobody.com>_ `hello`\n*Commits impacting only nodes"
|
90
90
|
)
|
91
91
|
end
|
92
92
|
end
|
data/spec/commit_spec.rb
CHANGED
@@ -23,4 +23,16 @@ describe CookbookRelease::Commit do
|
|
23
23
|
expect(minor_change) .not_to be_patch
|
24
24
|
end
|
25
25
|
end
|
26
|
+
|
27
|
+
describe '.to_s_markdown' do
|
28
|
+
it 'surrounds subject with backticks' do
|
29
|
+
commit = CookbookRelease::Commit.new(subject: 'This is a fix', hash: 'abcdef', author: 'Linus', email: 'linus@linux.org')
|
30
|
+
expect(commit.to_s_markdown(false)).to match(/`#{commit[:subject]}`/)
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'properly handle emojis' do
|
34
|
+
commit = CookbookRelease::Commit.new(subject: 'This is a fix 🔧 and I love 🪐🚀', hash: 'abcdef', author: 'Linus', email: 'linus@linux.org')
|
35
|
+
expect(commit.to_s_markdown(false)).to match(/`This is a fix` 🔧 `and I love` 🪐🚀/)
|
36
|
+
end
|
37
|
+
end
|
26
38
|
end
|
data/spec/git_spec.rb
CHANGED
@@ -44,6 +44,21 @@ 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 'do not finds repo\'s root from untracked subdir' do
|
49
|
+
subdir = 'cookbooks/mycookbook'
|
50
|
+
FileUtils.mkdir_p(subdir)
|
51
|
+
expect(CookbookRelease::GitUtilities.find_root(subdir)).to be nil
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'finds repo\'s root from tracked subdir' do
|
55
|
+
subdir = 'cookbooks/mycookbook'
|
56
|
+
tracked_file = ::File.join(subdir, 'tracked_file')
|
57
|
+
FileUtils.mkdir_p(subdir)
|
58
|
+
FileUtils.touch(tracked_file)
|
59
|
+
::Mixlib::ShellOut.new("git add '#{tracked_file}'").run_command
|
60
|
+
expect(CookbookRelease::GitUtilities.find_root(subdir)).to eq(Dir.pwd)
|
61
|
+
end
|
47
62
|
end
|
48
63
|
|
49
64
|
describe '.clean_index(?|!)' do
|
@@ -150,8 +165,8 @@ git tag 12.34.56
|
|
150
165
|
|
151
166
|
it 'parse correctly commits' do
|
152
167
|
cmds = <<-EOH
|
153
|
-
git commit --allow-empty -m "subject" -m "body" -m "line2"
|
154
|
-
git commit --allow-empty -m "without body"
|
168
|
+
git commit --allow-empty --no-verify -m "subject" -m "body" -m "line2"
|
169
|
+
git commit --allow-empty --no-verify -m "without body"
|
155
170
|
EOH
|
156
171
|
cmds.split("\n").each do |cmd|
|
157
172
|
cmd = Mixlib::ShellOut.new(cmd)
|
data/spec/release_spec.rb
CHANGED
@@ -36,12 +36,13 @@ describe Release do
|
|
36
36
|
:push_tag => true,
|
37
37
|
)
|
38
38
|
allow(git).to receive(:no_prompt=)
|
39
|
+
allow(git).to receive(:sub_dir).and_return(nil)
|
39
40
|
release = Release.new(git, no_prompt: true)
|
40
41
|
|
41
42
|
supermarket = double('supermarket')
|
42
43
|
expect(CookbookRelease::Supermarket).to receive(:new).and_return(supermarket)
|
43
44
|
|
44
|
-
expect(supermarket).to receive(:publish_ck).with('Other')
|
45
|
+
expect(supermarket).to receive(:publish_ck).with('Other', nil)
|
45
46
|
release.release!
|
46
47
|
end
|
47
48
|
end
|
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.7.0
|
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-07-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: semantic
|
@@ -59,6 +59,9 @@ dependencies:
|
|
59
59
|
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 12.18.31
|
62
|
+
- - "<"
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: '17.0'
|
62
65
|
type: :runtime
|
63
66
|
prerelease: false
|
64
67
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -66,6 +69,9 @@ dependencies:
|
|
66
69
|
- - ">="
|
67
70
|
- !ruby/object:Gem::Version
|
68
71
|
version: 12.18.31
|
72
|
+
- - "<"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '17.0'
|
69
75
|
- !ruby/object:Gem::Dependency
|
70
76
|
name: git-ng
|
71
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,6 +86,20 @@ dependencies:
|
|
80
86
|
- - ">="
|
81
87
|
- !ruby/object:Gem::Version
|
82
88
|
version: '0'
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: unicode-emoji
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
type: :runtime
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
83
103
|
- !ruby/object:Gem::Dependency
|
84
104
|
name: rspec
|
85
105
|
requirement: !ruby/object:Gem::Requirement
|
@@ -142,12 +162,13 @@ executables: []
|
|
142
162
|
extensions: []
|
143
163
|
extra_rdoc_files: []
|
144
164
|
files:
|
165
|
+
- ".github/workflows/ci.yml"
|
166
|
+
- ".github/workflows/release.yml"
|
145
167
|
- ".gitignore"
|
146
|
-
- ".travis.yml"
|
147
168
|
- Gemfile
|
148
169
|
- LICENSE.txt
|
149
170
|
- README.md
|
150
|
-
- Rakefile
|
171
|
+
- Rakefile
|
151
172
|
- cookbook-release.gemspec
|
152
173
|
- lib/cookbook-release.rb
|
153
174
|
- lib/cookbook-release/changelog.rb
|
@@ -180,8 +201,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
180
201
|
- !ruby/object:Gem::Version
|
181
202
|
version: '0'
|
182
203
|
requirements: []
|
183
|
-
|
184
|
-
rubygems_version: 2.7.6
|
204
|
+
rubygems_version: 3.1.6
|
185
205
|
signing_key:
|
186
206
|
specification_version: 4
|
187
207
|
summary: Provide primitives (and rake tasks) to release a cookbook
|
data/.travis.yml
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
rvm:
|
3
|
-
- 2.4
|
4
|
-
deploy:
|
5
|
-
provider: rubygems
|
6
|
-
api_key:
|
7
|
-
secure: nrEzm2dqWjyaa5ewApSonF+2D+y3PYwt9xaQC04d1NtbhQYyzX6wti3oatpMJI2gkcuuLjKrNHH/aLbKOGv7+Jj5BUJGOLixxhRdJyLWde/6cKCYVgIYPxeUtSJrRgyHAS2o8TDPjhWCT5oRwSkmhd+5D2JKjVqAycetbIzKWWvqScO09z0bF66bbKSfO1s44JwKjnUUW7W9tzrPvMPouBBoFtQ+dQVgxYLajgmjprVvIwzlHxgq/zP8YwL8i7vyRJFiQXyveSxZfBagN2qrUM72HWBPLLW4AeAdLDHYWon88GDU0p+cy2mVeSe67fBPVDopAEGij7MNJCBWV1/SRRKQcEb2U823+1GSB13OvaOGTn9rYsJP5zLKu77ATbHPi22nMfWOAzdEJJ+uFu9XW4nwUO/j79zPC1mEsRZDJlDrmTc4XZQJRKkCUjSl/J53vbdy4JQfos8B2V15tzx1baswQVPZuNiwuP4dOupI34FohJSVXQrsOoWVWVEX5Tfod6s3kpivW6lzwM68I2qXFa/4H8RPU2m0eVpfQslOO8TaGnbodudbQ1LSi/d5W6XWrMVqWGH910JG3jlJgHn5J7yQlI4VqnOpCjGsx/5xincuJZ7hBhcu5q5zcAGem7TrYSNkrx6neBYKmpZBHOWalIGw8wI9uViEsGQ6fayFee8=
|
8
|
-
gem: cookbook-release
|
9
|
-
on:
|
10
|
-
tags: true
|
11
|
-
repo: criteo/cookbook-release
|