yes_ship_it 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/assertions/published_gem.rb +10 -1
- data/assertions/pushed_code.rb +24 -0
- data/assertions/release_archive.rb +3 -1
- data/assertions/yes_it_shipped.rb +3 -1
- data/configs/ruby_gem.conf +1 -0
- data/lib/version.rb +1 -1
- data/lib/yes_ship_it/engine.rb +4 -0
- data/lib/yes_ship_it/git.rb +20 -2
- data/lib/yes_ship_it.rb +1 -0
- data/spec/data/red_herring-007.tar.gz +0 -0
- data/spec/data/red_herring-008.tar.gz +0 -0
- data/spec/integration/cli_spec.rb +2 -1
- data/spec/system/ruby_gem_spec.rb +78 -56
- data/spec/unit/assertions/published_gem_spec.rb +14 -0
- data/spec/unit/assertions/pushed_code_spec.rb +20 -0
- data/spec/unit/assertions/yes_it_shipped_spec.rb +1 -1
- data/spec/unit/git_spec.rb +37 -4
- data/yes_ship_it.gemspec +1 -0
- metadata +21 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 168ad942fbfdb7207ece3f1fce5986fac3511b43
|
4
|
+
data.tar.gz: 57c44bc9c84c57bd10db8b989f886b3a9c596b69
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d36f142bd4848d0187e030f3d881027d140fa8e922fe3d4b91db372e709e8ddc14266157ddecef0c849058af7dd9e71195d5c10ce57de2e2dedfc2c17de1dc9c
|
7
|
+
data.tar.gz: 84a63ab61af12d0c76f173daf0c226c1f97cbb13581441499963c2ec99601b7c255b2c5306ae2f99b3a447b1c66d05c63e25f949976d186731e943055b789db8
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
# Change log of yes_ship_it
|
2
2
|
|
3
|
+
## Version 0.0.5
|
4
|
+
|
5
|
+
* Handle missing credentials for Rubygems, when pushing gems
|
6
|
+
* Handle the case when the origin in your git configuration includes the .git
|
7
|
+
extension
|
8
|
+
* When pushing to yes_it_shipped use the date is when the release happened not
|
9
|
+
when the release was pushed to the site (Issue #9)
|
10
|
+
* Add assertion `pushed_code` to check, if the released has been pushed to the
|
11
|
+
remote repository
|
12
|
+
|
3
13
|
## Version 0.0.4
|
4
14
|
|
5
15
|
* Add yes_it_shipped assertion
|
data/assertions/published_gem.rb
CHANGED
@@ -27,7 +27,16 @@ module YSI
|
|
27
27
|
|
28
28
|
def assert(dry_run: false)
|
29
29
|
if !dry_run
|
30
|
-
|
30
|
+
begin
|
31
|
+
if !File.exist?(File.expand_path("~/.gem/credentials"))
|
32
|
+
@error = "You need to log in to Rubygems first by running `gem push #{gem_file}` manually"
|
33
|
+
return nil
|
34
|
+
end
|
35
|
+
Cheetah.run(["gem", "push", gem_file])
|
36
|
+
rescue Cheetah::ExecutionFailed => e
|
37
|
+
@error = e.message
|
38
|
+
return nil
|
39
|
+
end
|
31
40
|
end
|
32
41
|
gem_file
|
33
42
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module YSI
|
2
|
+
class PushedCode < Assertion
|
3
|
+
needs "release_branch"
|
4
|
+
|
5
|
+
def display_name
|
6
|
+
"pushed code"
|
7
|
+
end
|
8
|
+
|
9
|
+
def check
|
10
|
+
if Git.new.needs_push?
|
11
|
+
return nil
|
12
|
+
else
|
13
|
+
return "up-to-date"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def assert(dry_run: false)
|
18
|
+
if !dry_run
|
19
|
+
Git.new.push
|
20
|
+
end
|
21
|
+
return "pushed"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -34,7 +34,9 @@ module YSI
|
|
34
34
|
FileUtils.mkdir_p(File.dirname(release_archive))
|
35
35
|
excludes = [".git", ".gitignore", "yes_ship_it.conf"]
|
36
36
|
exclude_options = excludes.map { |e| "--exclude '#{e}'" }.join(" ")
|
37
|
-
system("cd #{tmp_dir}; tar czf #{release_archive} #{exclude_options} #{archive_dir}")
|
37
|
+
if !system("cd #{tmp_dir}; tar czf #{release_archive} #{exclude_options} #{archive_dir}")
|
38
|
+
return nil
|
39
|
+
end
|
38
40
|
end
|
39
41
|
end
|
40
42
|
filename
|
@@ -1,5 +1,7 @@
|
|
1
1
|
module YSI
|
2
2
|
class YesItShipped < Assertion
|
3
|
+
needs "tag"
|
4
|
+
|
3
5
|
def display_name
|
4
6
|
"pushed to yes-it-shipped"
|
5
7
|
end
|
@@ -18,7 +20,7 @@ module YSI
|
|
18
20
|
begin
|
19
21
|
RestClient.post("https://yes-it-shipped.herokuapp.com/releases",
|
20
22
|
project: engine.project_name, version: engine.version,
|
21
|
-
release_date_time:
|
23
|
+
release_date_time: engine.tag_date, project_url: engine.project_url,
|
22
24
|
release_url: engine.release_url, ysi_config_url: engine.config_url)
|
23
25
|
rescue RestClient::Exception
|
24
26
|
return nil
|
data/configs/ruby_gem.conf
CHANGED
data/lib/version.rb
CHANGED
data/lib/yes_ship_it/engine.rb
CHANGED
@@ -147,6 +147,10 @@ module YSI
|
|
147
147
|
out.print "Asserting #{assertion.display_name}: "
|
148
148
|
success = assertion.assert(dry_run: dry_run)
|
149
149
|
if !success
|
150
|
+
if assertion.error
|
151
|
+
out.puts "error"
|
152
|
+
out.puts " " + assertion.error
|
153
|
+
end
|
150
154
|
out.puts
|
151
155
|
out.puts "Ran into an error. Stopping shipping."
|
152
156
|
return 1
|
data/lib/yes_ship_it/git.rb
CHANGED
@@ -1,11 +1,29 @@
|
|
1
1
|
module YSI
|
2
2
|
class Git
|
3
|
+
def initialize(working_dir = Dir.pwd)
|
4
|
+
@working_dir = working_dir
|
5
|
+
end
|
6
|
+
|
3
7
|
def run_git(args)
|
4
|
-
|
8
|
+
Dir.chdir(@working_dir) do
|
9
|
+
`git #{args}`
|
10
|
+
end
|
5
11
|
end
|
6
12
|
|
7
13
|
def origin
|
8
|
-
run_git("remote -v").match(/origin\s+(
|
14
|
+
run_git("remote -v").match(/origin\s+(.*?)(\.git)?\s+\(push\)/)[1]
|
15
|
+
end
|
16
|
+
|
17
|
+
def needs_push?
|
18
|
+
local_master = run_git("rev-parse master")
|
19
|
+
remote_master = run_git("rev-parse origin/master")
|
20
|
+
base = run_git("merge-base master origin/master")
|
21
|
+
|
22
|
+
remote_master == base && local_master != remote_master
|
23
|
+
end
|
24
|
+
|
25
|
+
def push
|
26
|
+
`git push`
|
9
27
|
end
|
10
28
|
end
|
11
29
|
end
|
data/lib/yes_ship_it.rb
CHANGED
Binary file
|
Binary file
|
@@ -164,7 +164,8 @@ Checking built gem: error
|
|
164
164
|
I need a gemspec: test_project.gemspec
|
165
165
|
Checking published gem: skip (because dependency errored)
|
166
166
|
Checking pushed tag: skip (because dependency errored)
|
167
|
-
Checking pushed
|
167
|
+
Checking pushed code: skip (because dependency errored)
|
168
|
+
Checking pushed to yes-it-shipped: skip (because dependency errored)
|
168
169
|
|
169
170
|
Couldn't ship test_project. Help me.
|
170
171
|
EOT
|
@@ -1,26 +1,38 @@
|
|
1
1
|
require_relative "spec_helper"
|
2
2
|
|
3
3
|
describe "ship ruby gem" do
|
4
|
-
|
5
|
-
out =
|
6
|
-
|
4
|
+
before(:all) do
|
5
|
+
out = StringIO.new
|
6
|
+
@test = Httpotemkin::Test.new(out: out)
|
7
|
+
@test.add_server("rubygems")
|
8
|
+
@test.add_server("api.rubygems")
|
9
|
+
@test.add_server("obs")
|
10
|
+
@test.up
|
11
|
+
end
|
7
12
|
|
8
|
-
|
9
|
-
test.
|
10
|
-
|
11
|
-
test.add_server("obs")
|
13
|
+
after(:all) do
|
14
|
+
@test.down
|
15
|
+
end
|
12
16
|
|
13
|
-
|
14
|
-
|
17
|
+
before(:each) do
|
18
|
+
@client = @test.start_client
|
19
|
+
@client.install_gem_from_spec("yes_ship_it.gemspec")
|
20
|
+
remote_tar = File.expand_path("../data/red_herring-remote.tar.gz", __FILE__)
|
21
|
+
@client.inject_tarball(remote_tar)
|
22
|
+
end
|
23
|
+
|
24
|
+
after(:each) do
|
25
|
+
@test.stop_client
|
26
|
+
end
|
15
27
|
|
16
|
-
|
28
|
+
context "with existing credentials" do
|
29
|
+
it "builds gem" do
|
17
30
|
checkout_tar = File.expand_path("../data/red_herring-checkout-build.tar.gz", __FILE__)
|
18
|
-
client.inject_tarball(
|
19
|
-
client.inject_tarball(checkout_tar)
|
31
|
+
@client.inject_tarball(checkout_tar)
|
20
32
|
|
21
|
-
client.execute(["yes_ship_it.ruby2.1"], working_directory: "red_herring")
|
33
|
+
@client.execute(["yes_ship_it.ruby2.1"], working_directory: "red_herring")
|
22
34
|
|
23
|
-
expect(client.exit_code).to eq(0)
|
35
|
+
expect(@client.exit_code).to eq(0)
|
24
36
|
|
25
37
|
expected_output = <<EOT
|
26
38
|
Shipping...
|
@@ -34,32 +46,18 @@ Asserting release archive: red_herring-0.0.2.tar.gz
|
|
34
46
|
|
35
47
|
Shipped red_herring 0.0.2. Hooray!
|
36
48
|
EOT
|
37
|
-
expect(client.out).to eq(expected_output)
|
49
|
+
expect(@client.out).to eq(expected_output)
|
38
50
|
|
39
|
-
expect(client.err
|
51
|
+
expect(@client.err).to eq("")
|
40
52
|
end
|
41
|
-
end
|
42
|
-
|
43
|
-
it "pushes gem if it isn't pushed yet" do
|
44
|
-
out = double
|
45
|
-
allow(out).to receive(:puts)
|
46
|
-
|
47
|
-
test = Httpotemkin::Test.new(out: out)
|
48
|
-
test.add_server("rubygems")
|
49
|
-
test.add_server("api.rubygems")
|
50
|
-
test.add_server("obs")
|
51
53
|
|
52
|
-
|
53
|
-
client.install_gem_from_spec("yes_ship_it.gemspec")
|
54
|
-
|
55
|
-
remote_tar = File.expand_path("../data/red_herring-remote.tar.gz", __FILE__)
|
54
|
+
it "pushes gem if it isn't pushed yet" do
|
56
55
|
checkout_tar = File.expand_path("../data/red_herring-checkout-push.tar.gz", __FILE__)
|
57
|
-
client.inject_tarball(
|
58
|
-
client.inject_tarball(checkout_tar)
|
56
|
+
@client.inject_tarball(checkout_tar)
|
59
57
|
|
60
|
-
client.execute(["yes_ship_it.ruby2.1"], working_directory: "red_herring")
|
58
|
+
@client.execute(["yes_ship_it.ruby2.1"], working_directory: "red_herring")
|
61
59
|
|
62
|
-
expect(client.exit_code).to eq(0)
|
60
|
+
expect(@client.exit_code).to eq(0)
|
63
61
|
|
64
62
|
expected_output = <<EOT
|
65
63
|
Shipping...
|
@@ -75,32 +73,19 @@ Asserting published gem: red_herring-0.0.2.gem
|
|
75
73
|
|
76
74
|
Shipped red_herring 0.0.2. Hooray!
|
77
75
|
EOT
|
78
|
-
expect(client.out).to eq(expected_output)
|
79
76
|
|
80
|
-
expect(client.
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
it "doesn't push gem if it already is pushed" do
|
85
|
-
out = double
|
86
|
-
allow(out).to receive(:puts)
|
87
|
-
|
88
|
-
test = Httpotemkin::Test.new(out: out)
|
89
|
-
test.add_server("rubygems")
|
90
|
-
test.add_server("api.rubygems")
|
91
|
-
test.add_server("obs")
|
77
|
+
expect(@client.out).to eq(expected_output)
|
92
78
|
|
93
|
-
|
94
|
-
|
79
|
+
expect(@client.err).to eq("")
|
80
|
+
end
|
95
81
|
|
96
|
-
|
82
|
+
it "doesn't push gem if it already is pushed" do
|
97
83
|
checkout_tar = File.expand_path("../data/red_herring-checkout-not-push.tar.gz", __FILE__)
|
98
|
-
client.inject_tarball(
|
99
|
-
client.inject_tarball(checkout_tar)
|
84
|
+
@client.inject_tarball(checkout_tar)
|
100
85
|
|
101
|
-
client.execute(["yes_ship_it.ruby2.1"], working_directory: "red_herring")
|
86
|
+
@client.execute(["yes_ship_it.ruby2.1"], working_directory: "red_herring")
|
102
87
|
|
103
|
-
expect(client.exit_code).to eq(0)
|
88
|
+
expect(@client.exit_code).to eq(0)
|
104
89
|
|
105
90
|
expected_output = <<EOT
|
106
91
|
Shipping...
|
@@ -111,9 +96,46 @@ Checking published gem: 0.0.1
|
|
111
96
|
|
112
97
|
red_herring 0.0.1 already shipped
|
113
98
|
EOT
|
114
|
-
expect(client.out).to eq(expected_output)
|
99
|
+
expect(@client.out).to eq(expected_output)
|
115
100
|
|
116
|
-
expect(client.err.empty?).to be(true)
|
101
|
+
expect(@client.err.empty?).to be(true)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
context "without existing credentials" do
|
106
|
+
before(:each) do
|
107
|
+
@client.execute(["mv", "/root/.gem/credentials", "/tmp"])
|
108
|
+
|
109
|
+
checkout_tar = File.expand_path("../data/red_herring-checkout-push.tar.gz", __FILE__)
|
110
|
+
@client.inject_tarball(checkout_tar)
|
111
|
+
end
|
112
|
+
|
113
|
+
after(:each) do
|
114
|
+
@client.execute(["mv", "/tmp/credentials", "/root/.gem/"])
|
115
|
+
end
|
116
|
+
|
117
|
+
it "tells how to login" do
|
118
|
+
@client.execute(["yes_ship_it.ruby2.1"], working_directory: "red_herring")
|
119
|
+
|
120
|
+
expect(@client.exit_code).to eq(1)
|
121
|
+
|
122
|
+
expected_output = <<EOT
|
123
|
+
Shipping...
|
124
|
+
|
125
|
+
Checking version number: 0.0.2
|
126
|
+
Checking tag: fail
|
127
|
+
Checking built gem: fail
|
128
|
+
Checking published gem: fail
|
129
|
+
|
130
|
+
Asserting tag: v0.0.2
|
131
|
+
Asserting built gem: red_herring-0.0.2.gem
|
132
|
+
Asserting published gem: error
|
133
|
+
You need to log in to Rubygems first by running `gem push red_herring-0.0.2.gem` manually
|
134
|
+
|
135
|
+
Ran into an error. Stopping shipping.
|
136
|
+
EOT
|
137
|
+
expect(@client.out).to eq(expected_output)
|
138
|
+
expect(@client.err.empty?).to be(true)
|
117
139
|
end
|
118
140
|
end
|
119
141
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require_relative "../spec_helper.rb"
|
2
|
+
|
3
|
+
describe YSI::PublishedGem do
|
4
|
+
describe "#assert" do
|
5
|
+
it "returns nil if there is an error" do
|
6
|
+
engine = YSI::Engine
|
7
|
+
allow(engine).to receive(:project_name).and_return("IdontExist")
|
8
|
+
allow(engine).to receive(:version).and_return("0.0")
|
9
|
+
assertion = YSI::PublishedGem.new(YSI::Engine)
|
10
|
+
|
11
|
+
expect(assertion.assert).to be(nil)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require_relative "../spec_helper"
|
2
|
+
|
3
|
+
include GivenFilesystemSpecHelpers
|
4
|
+
|
5
|
+
describe YSI::PushedCode do
|
6
|
+
use_given_filesystem
|
7
|
+
|
8
|
+
it "pushes code" do
|
9
|
+
expect_any_instance_of(YSI::Git).to receive(:push).and_return("pushed")
|
10
|
+
dir = given_directory
|
11
|
+
setup_test_git_repo("007", dir)
|
12
|
+
|
13
|
+
engine = YSI::Engine.new
|
14
|
+
assertion = YSI::PushedCode.new(engine)
|
15
|
+
Dir.chdir(File.join(dir, "red_herring")) do
|
16
|
+
expect(assertion.check).to be(nil)
|
17
|
+
expect(assertion.assert).to eq "pushed"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -42,7 +42,6 @@ EOT
|
|
42
42
|
|
43
43
|
describe "#assert" do
|
44
44
|
it "pushes release" do
|
45
|
-
allow(Time).to receive(:now).and_return(Time.parse("20151208T141655+0100"))
|
46
45
|
stub_request(:post, "https://yes-it-shipped.herokuapp.com/releases").
|
47
46
|
with(
|
48
47
|
:body => {
|
@@ -64,6 +63,7 @@ EOT
|
|
64
63
|
engine = YSI::Engine.new
|
65
64
|
allow(engine).to receive(:project_name).and_return("dummy")
|
66
65
|
engine.version = "1.1.1"
|
66
|
+
engine.tag_date = Time.parse("20151208T141655+0100")
|
67
67
|
|
68
68
|
assertion = YSI::YesItShipped.new(engine)
|
69
69
|
|
data/spec/unit/git_spec.rb
CHANGED
@@ -1,13 +1,46 @@
|
|
1
1
|
require_relative "spec_helper"
|
2
2
|
|
3
|
+
include GivenFilesystemSpecHelpers
|
4
|
+
|
3
5
|
describe YSI::Git do
|
4
|
-
|
5
|
-
|
6
|
+
describe "#origin" do
|
7
|
+
|
8
|
+
it "grabs the url without the extension" do
|
9
|
+
allow(subject).to receive(:run_git).with("remote -v").and_return(<<EOT
|
6
10
|
origin git@github.com:cornelius/red_herring (fetch)
|
7
11
|
origin git@github.com:cornelius/red_herring (push)
|
8
12
|
EOT
|
9
|
-
|
13
|
+
)
|
14
|
+
expect(subject.origin).to eq("git@github.com:cornelius/red_herring")
|
15
|
+
end
|
16
|
+
|
17
|
+
it "grabs the url with the extension" do
|
18
|
+
allow(subject).to receive(:run_git).with("remote -v").and_return(<<EOT
|
19
|
+
origin git@github.com:cornelius/red_herring.git (fetch)
|
20
|
+
origin git@github.com:cornelius/red_herring.git (push)
|
21
|
+
EOT
|
22
|
+
)
|
23
|
+
expect(subject.origin).to eq("git@github.com:cornelius/red_herring")
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "#needs_push?" do
|
28
|
+
use_given_filesystem
|
29
|
+
|
30
|
+
it "returns true if local changes are not in remote branch" do
|
31
|
+
dir = given_directory
|
32
|
+
setup_test_git_repo("007", dir)
|
33
|
+
git = YSI::Git.new(File.join(dir, "red_herring"))
|
34
|
+
|
35
|
+
expect(git.needs_push?).to be(true)
|
36
|
+
end
|
37
|
+
|
38
|
+
it "returns false if local changes are in remote branch" do
|
39
|
+
dir = given_directory
|
40
|
+
setup_test_git_repo("008", dir)
|
41
|
+
git = YSI::Git.new(File.join(dir, "red_herring"))
|
10
42
|
|
11
|
-
|
43
|
+
expect(git.needs_push?).to be(false)
|
44
|
+
end
|
12
45
|
end
|
13
46
|
end
|
data/yes_ship_it.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yes_ship_it
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cornelius Schumacher
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-12-
|
11
|
+
date: 2015-12-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: inifile
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: cheetah
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: rspec
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -126,6 +140,7 @@ files:
|
|
126
140
|
- assertions/built_gem.rb
|
127
141
|
- assertions/change_log.rb
|
128
142
|
- assertions/published_gem.rb
|
143
|
+
- assertions/pushed_code.rb
|
129
144
|
- assertions/pushed_tag.rb
|
130
145
|
- assertions/release_archive.rb
|
131
146
|
- assertions/release_branch.rb
|
@@ -151,6 +166,8 @@ files:
|
|
151
166
|
- spec/data/red_herring-004.tar.gz
|
152
167
|
- spec/data/red_herring-005.tar.gz
|
153
168
|
- spec/data/red_herring-006.tar.gz
|
169
|
+
- spec/data/red_herring-007.tar.gz
|
170
|
+
- spec/data/red_herring-008.tar.gz
|
154
171
|
- spec/data/version/version.go
|
155
172
|
- spec/data/version/version.rb
|
156
173
|
- spec/data/yes_ship_it.conf
|
@@ -167,6 +184,8 @@ files:
|
|
167
184
|
- spec/system/spec_helper.rb
|
168
185
|
- spec/unit/assertion_spec.rb
|
169
186
|
- spec/unit/assertions/change_log_spec.rb
|
187
|
+
- spec/unit/assertions/published_gem_spec.rb
|
188
|
+
- spec/unit/assertions/pushed_code_spec.rb
|
170
189
|
- spec/unit/assertions/pushed_tag_spec.rb
|
171
190
|
- spec/unit/assertions/release_archive_spec.rb
|
172
191
|
- spec/unit/assertions/release_branch_spec.rb
|