slather 2.2.1 → 2.3.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/CHANGELOG.md +14 -0
- data/lib/slather/command/coverage_command.rb +3 -0
- data/lib/slather/coverage_service/coveralls.rb +23 -2
- data/lib/slather/project.rb +1 -1
- data/lib/slather/version.rb +1 -1
- data/slather.gemspec +4 -1
- data/spec/slather/coverage_service/coveralls_spec.rb +19 -0
- data/spec/slather/project_spec.rb +22 -0
- metadata +33 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5e27d1218948f82525f0b2ed8a6a98204b717fc1
|
4
|
+
data.tar.gz: bbaffb2b00075ab13a568ae40992d1cb09138e0f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 751fde31c23722c6c143ac0a1bd04421dcb9be6ef3074c97209667ac6e6da393b02dae0457ba36b9223f5d785657be191cba67336d9a960861a0089619bcd43c
|
7
|
+
data.tar.gz: 31953c5059db5e6197f6fc61fd2b7b1c6173f6c9a77a7dadd4888cf45cca8c88c7bb460271aa8529655c519bd8b90cba15ab84044d041245ac6a9c28b12d1606
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,20 @@
|
|
2
2
|
|
3
3
|
## master
|
4
4
|
|
5
|
+
## v2.3.0
|
6
|
+
|
7
|
+
* Fixes broken fallback value of `input_format` inside `configure_input_format`
|
8
|
+
[sbhklr](https://github.com/sbhklr)
|
9
|
+
[#233](https://github.com/SlatherOrg/slather/pull/233), [#232](https://github.com/SlatherOrg/slather/issues/232)
|
10
|
+
|
11
|
+
* Add `--travispro` flag
|
12
|
+
[sbhklr](https://github.com/sbhklr)
|
13
|
+
[#223](https://github.com/SlatherOrg/slather/pull/223), [#219](https://github.com/SlatherOrg/slather/issues/219)
|
14
|
+
|
15
|
+
* Fixes silent failure in case of unsuccessful upload to Coveralls
|
16
|
+
[sbhklr](https://github.com/sbhklr)
|
17
|
+
[#222](https://github.com/SlatherOrg/slather/pull/222), [#217](https://github.com/SlatherOrg/slather/issues/217)
|
18
|
+
|
5
19
|
## v2.2.1
|
6
20
|
|
7
21
|
* Make `project.coverage_files` public
|
@@ -3,6 +3,7 @@ class CoverageCommand < Clamp::Command
|
|
3
3
|
parameter "[PROJECT]", "Path to the xcodeproj", :attribute_name => :xcodeproj_path
|
4
4
|
|
5
5
|
option ["--travis", "-t"], :flag, "Indicate that the builds are running on Travis CI"
|
6
|
+
option ["--travispro"], :flag, "Indicate that the builds are running on Travis Pro CI"
|
6
7
|
option ["--circleci"], :flag, "Indicate that the builds are running on CircleCI"
|
7
8
|
option ["--jenkins"], :flag, "Indicate that the builds are running on Jenkins"
|
8
9
|
option ["--buildkite"], :flag, "Indicate that the builds are running on Buildkite"
|
@@ -73,6 +74,8 @@ class CoverageCommand < Clamp::Command
|
|
73
74
|
def setup_service_name
|
74
75
|
if travis?
|
75
76
|
project.ci_service = :travis_ci
|
77
|
+
elsif travispro?
|
78
|
+
project.ci_service = :travis_pro
|
76
79
|
elsif circleci?
|
77
80
|
project.ci_service = :circleci
|
78
81
|
elsif jenkins?
|
@@ -100,12 +100,22 @@ module Slather
|
|
100
100
|
if ci_service == :travis_ci || ci_service == :travis_pro
|
101
101
|
if travis_job_id
|
102
102
|
if ci_service == :travis_ci
|
103
|
+
|
104
|
+
if coverage_access_token.to_s.strip.length > 0
|
105
|
+
raise StandardError, "Access token is set. Uploading coverage data for public repositories doesn't require an access token."
|
106
|
+
end
|
107
|
+
|
103
108
|
{
|
104
109
|
:service_job_id => travis_job_id,
|
105
110
|
:service_name => "travis-ci",
|
106
111
|
:source_files => coverage_files.map(&:as_json)
|
107
112
|
}.to_json
|
108
|
-
elsif ci_service == :travis_pro
|
113
|
+
elsif ci_service == :travis_pro
|
114
|
+
|
115
|
+
if coverage_access_token.to_s.strip.length == 0
|
116
|
+
raise StandardError, "Access token is not set. Uploading coverage data for private repositories requires an access token."
|
117
|
+
end
|
118
|
+
|
109
119
|
{
|
110
120
|
:service_job_id => travis_job_id,
|
111
121
|
:service_name => "travis-pro",
|
@@ -172,7 +182,18 @@ module Slather
|
|
172
182
|
begin
|
173
183
|
f.write(coveralls_coverage_data)
|
174
184
|
f.close
|
175
|
-
|
185
|
+
|
186
|
+
curl_result = `curl -s --form json_file=@#{f.path} #{coveralls_api_jobs_path}`
|
187
|
+
|
188
|
+
if curl_result.is_a? String
|
189
|
+
curl_result_json = JSON.parse(curl_result)
|
190
|
+
|
191
|
+
if curl_result_json["error"]
|
192
|
+
error_message = curl_result_json["message"]
|
193
|
+
raise StandardError, "Error while uploading coverage data to Coveralls. CI Service: #{ci_service} Message: #{error_message}"
|
194
|
+
end
|
195
|
+
end
|
196
|
+
|
176
197
|
rescue StandardError => e
|
177
198
|
FileUtils.rm(f)
|
178
199
|
raise e
|
data/lib/slather/project.rb
CHANGED
data/lib/slather/version.rb
CHANGED
data/slather.gemspec
CHANGED
@@ -28,6 +28,9 @@ Gem::Specification.new do |spec|
|
|
28
28
|
spec.add_development_dependency "equivalent-xml", "~> 0.5.1"
|
29
29
|
|
30
30
|
spec.add_dependency "clamp", "~> 0.6"
|
31
|
-
spec.add_dependency "xcodeproj", "
|
31
|
+
spec.add_dependency "xcodeproj", "< 2.0.0", ">= 0.20"
|
32
32
|
spec.add_dependency "nokogiri", "~> 1.6.3"
|
33
|
+
|
34
|
+
## Version 5 needs Ruby 2.2, so we specify an upper bound to stay compatible with system ruby
|
35
|
+
spec.add_runtime_dependency 'activesupport', '>= 4.0.2', '< 5'
|
33
36
|
end
|
@@ -41,6 +41,12 @@ describe Slather::CoverageService::Coveralls do
|
|
41
41
|
allow(fixtures_project).to receive(:travis_job_id).and_return(nil)
|
42
42
|
expect { fixtures_project.send(:coveralls_coverage_data) }.to raise_error(StandardError)
|
43
43
|
end
|
44
|
+
|
45
|
+
it "should raise an error if there is a COVERAGE_ACCESS_TOKEN" do
|
46
|
+
allow(fixtures_project).to receive(:coverage_access_token).and_return("abc123")
|
47
|
+
expect { fixtures_project.send(:coveralls_coverage_data) }.to raise_error(StandardError)
|
48
|
+
end
|
49
|
+
|
44
50
|
end
|
45
51
|
|
46
52
|
context "coverage_service is :travis_pro" do
|
@@ -57,6 +63,12 @@ describe Slather::CoverageService::Coveralls do
|
|
57
63
|
allow(fixtures_project).to receive(:travis_job_id).and_return(nil)
|
58
64
|
expect { fixtures_project.send(:coveralls_coverage_data) }.to raise_error(StandardError)
|
59
65
|
end
|
66
|
+
|
67
|
+
it "should raise an error if there is no COVERAGE_ACCESS_TOKEN" do
|
68
|
+
allow(fixtures_project).to receive(:coverage_access_token).and_return("")
|
69
|
+
expect { fixtures_project.send(:coveralls_coverage_data) }.to raise_error(StandardError)
|
70
|
+
end
|
71
|
+
|
60
72
|
end
|
61
73
|
|
62
74
|
context "coverage_service is :circleci" do
|
@@ -143,6 +155,13 @@ describe Slather::CoverageService::Coveralls do
|
|
143
155
|
fixtures_project.post
|
144
156
|
end
|
145
157
|
|
158
|
+
it "should save the coveralls_coverage_data to a file, post it to coveralls, and fail due to a Coveralls error" do
|
159
|
+
allow(fixtures_project).to receive(:travis_job_id).and_return("9182")
|
160
|
+
allow(fixtures_project).to receive(:`).and_return("{\"message\":\"Couldn't find a repository matching this job.\",\"error\":true}")
|
161
|
+
expect(fixtures_project).to receive(:`).once
|
162
|
+
expect { fixtures_project.post }.to raise_error(StandardError)
|
163
|
+
end
|
164
|
+
|
146
165
|
it "should always remove the coveralls_json_file after it's done" do
|
147
166
|
allow(fixtures_project).to receive(:`)
|
148
167
|
allow(fixtures_project).to receive(:travis_job_id).and_return("9182")
|
@@ -394,6 +394,28 @@ describe Slather::Project do
|
|
394
394
|
|
395
395
|
end
|
396
396
|
|
397
|
+
describe "#configure_input_format" do
|
398
|
+
it "should set the input_format if it has been provided by the yml" do
|
399
|
+
allow(Slather::Project).to receive(:yml).and_return({"input_format" => "gcov"})
|
400
|
+
fixtures_project.configure_input_format
|
401
|
+
expect(fixtures_project.input_format).to eq("gcov")
|
402
|
+
end
|
403
|
+
|
404
|
+
it "should default the input_format to auto if nothing is provided in the yml" do
|
405
|
+
allow(Slather::Project).to receive(:yml).and_return({})
|
406
|
+
expect(fixtures_project).to receive(:input_format=).with("auto")
|
407
|
+
fixtures_project.configure_input_format
|
408
|
+
end
|
409
|
+
|
410
|
+
it "should not set the input_format if it has already been set" do
|
411
|
+
allow(Slather::Project).to receive(:yml).and_return({"input_format" => "some_format" })
|
412
|
+
fixtures_project.input_format = "gcov"
|
413
|
+
expect(fixtures_project).to_not receive(:input_format=)
|
414
|
+
fixtures_project.configure_input_format
|
415
|
+
end
|
416
|
+
|
417
|
+
end
|
418
|
+
|
397
419
|
describe "#coverage_service=" do
|
398
420
|
it "should extend Slather::CoverageService::Coveralls and set coverage_service = :coveralls if given coveralls" do
|
399
421
|
expect(fixtures_project).to receive(:extend).with(Slather::CoverageService::Coveralls)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slather
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Larsen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-07-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -154,16 +154,22 @@ dependencies:
|
|
154
154
|
name: xcodeproj
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
|
-
- -
|
157
|
+
- - <
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: 2.0.0
|
160
|
+
- - '>='
|
158
161
|
- !ruby/object:Gem::Version
|
159
|
-
version: '
|
162
|
+
version: '0.20'
|
160
163
|
type: :runtime
|
161
164
|
prerelease: false
|
162
165
|
version_requirements: !ruby/object:Gem::Requirement
|
163
166
|
requirements:
|
164
|
-
- -
|
167
|
+
- - <
|
168
|
+
- !ruby/object:Gem::Version
|
169
|
+
version: 2.0.0
|
170
|
+
- - '>='
|
165
171
|
- !ruby/object:Gem::Version
|
166
|
-
version: '
|
172
|
+
version: '0.20'
|
167
173
|
- !ruby/object:Gem::Dependency
|
168
174
|
name: nokogiri
|
169
175
|
requirement: !ruby/object:Gem::Requirement
|
@@ -178,6 +184,26 @@ dependencies:
|
|
178
184
|
- - ~>
|
179
185
|
- !ruby/object:Gem::Version
|
180
186
|
version: 1.6.3
|
187
|
+
- !ruby/object:Gem::Dependency
|
188
|
+
name: activesupport
|
189
|
+
requirement: !ruby/object:Gem::Requirement
|
190
|
+
requirements:
|
191
|
+
- - '>='
|
192
|
+
- !ruby/object:Gem::Version
|
193
|
+
version: 4.0.2
|
194
|
+
- - <
|
195
|
+
- !ruby/object:Gem::Version
|
196
|
+
version: '5'
|
197
|
+
type: :runtime
|
198
|
+
prerelease: false
|
199
|
+
version_requirements: !ruby/object:Gem::Requirement
|
200
|
+
requirements:
|
201
|
+
- - '>='
|
202
|
+
- !ruby/object:Gem::Version
|
203
|
+
version: 4.0.2
|
204
|
+
- - <
|
205
|
+
- !ruby/object:Gem::Version
|
206
|
+
version: '5'
|
181
207
|
description:
|
182
208
|
email:
|
183
209
|
- mark@venmo.com
|
@@ -289,7 +315,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
289
315
|
version: '0'
|
290
316
|
requirements: []
|
291
317
|
rubyforge_project:
|
292
|
-
rubygems_version: 2.0.14
|
318
|
+
rubygems_version: 2.0.14.1
|
293
319
|
signing_key:
|
294
320
|
specification_version: 4
|
295
321
|
summary: Test coverage reports for Xcode projects
|