codecov 0.2.8 → 0.2.9
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/lib/codecov.rb +31 -26
- data/test/test_codecov.rb +27 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cdd8c92464da131becf5bae150b12f4ae3513d84c7f77ba059ee771ee662eca4
|
4
|
+
data.tar.gz: 592ed8f011c9e618aa2b71cf2c0ba7a9fb7a7ff1aa9ad80db72743f7f658cf24
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec4048e6ecb6c5780bfa1e4320a1edc177a5b96b6b2a3a7ba3a41416e5e1b40ea69e64d9cbeb58b920a566e9d3379244a4a21496500210adc9b51116325e5f0e
|
7
|
+
data.tar.gz: 4564c29b679ea650270560c719a1a178c8ab2d65fa9157e7892f06d02855b01ef5dcfe6be35e7cd47a836bec72abb74c1dc36002d9c030344549f987df9d930f
|
data/lib/codecov.rb
CHANGED
@@ -7,7 +7,7 @@ require 'simplecov'
|
|
7
7
|
require 'zlib'
|
8
8
|
|
9
9
|
class SimpleCov::Formatter::Codecov
|
10
|
-
VERSION = '0.2.
|
10
|
+
VERSION = '0.2.9'
|
11
11
|
|
12
12
|
### CIs
|
13
13
|
RECOGNIZED_CIS = [
|
@@ -17,6 +17,7 @@ class SimpleCov::Formatter::Codecov
|
|
17
17
|
BITRISE = 'Bitrise CI',
|
18
18
|
BUILDKITE = 'Buildkite CI',
|
19
19
|
CIRCLE = 'Circle CI',
|
20
|
+
CODEBUILD = 'Codebuild CI',
|
20
21
|
CODESHIP = 'Codeship CI',
|
21
22
|
DRONEIO = 'Drone CI',
|
22
23
|
GITHUB = 'GitHub Actions',
|
@@ -58,6 +59,8 @@ class SimpleCov::Formatter::Codecov
|
|
58
59
|
BUILDKITE
|
59
60
|
elsif (ENV['CI'] == 'true') && (ENV['CIRCLECI'] == 'true')
|
60
61
|
CIRCLE
|
62
|
+
elsif ENV['CODEBUILD_CI'] == 'true'
|
63
|
+
CODEBUILD
|
61
64
|
elsif (ENV['CI'] == 'true') && (ENV['CI_NAME'] == 'codeship')
|
62
65
|
CODESHIP
|
63
66
|
elsif ((ENV['CI'] == 'true') || (ENV['CI'] == 'drone')) && (ENV['DRONE'] == 'true')
|
@@ -85,7 +88,7 @@ class SimpleCov::Formatter::Codecov
|
|
85
88
|
end
|
86
89
|
|
87
90
|
if !RECOGNIZED_CIS.include?(ci)
|
88
|
-
puts ['x>'
|
91
|
+
puts [red('x>'), 'No CI provider detected.'].join(' ')
|
89
92
|
else
|
90
93
|
puts "==> #{ci} detected"
|
91
94
|
end
|
@@ -157,6 +160,15 @@ class SimpleCov::Formatter::Codecov
|
|
157
160
|
params[:pr] = ENV['CIRCLE_PR_NUMBER']
|
158
161
|
params[:branch] = ENV['CIRCLE_BRANCH']
|
159
162
|
params[:commit] = ENV['CIRCLE_SHA1']
|
163
|
+
when CODEBUILD
|
164
|
+
# https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html
|
165
|
+
params[:service] = 'codebuild'
|
166
|
+
params[:branch] = ENV['CODEBUILD_WEBHOOK_HEAD_REF'].split('/')[2]
|
167
|
+
params[:build] = ENV['CODEBUILD_BUILD_ID']
|
168
|
+
params[:commit] = ENV['CODEBUILD_RESOLVED_SOURCE_VERSION']
|
169
|
+
params[:job] = ENV['CODEBUILD_BUILD_ID']
|
170
|
+
params[:slug] = ENV['CODEBUILD_SOURCE_REPO_URL'].match(/.*github.com\/(?<slug>.*).git/)['slug']
|
171
|
+
params[:pr] = ENV['CODEBUILD_SOURCE_VERSION'].match(/pr\/(?<pr>.*)/)['pr'] if ENV['CODEBUILD_SOURCE_VERSION']
|
160
172
|
when CODESHIP
|
161
173
|
# https://www.codeship.io/documentation/continuous-integration/set-environment-variables/
|
162
174
|
params[:service] = 'codeship'
|
@@ -324,7 +336,7 @@ class SimpleCov::Formatter::Codecov
|
|
324
336
|
end
|
325
337
|
|
326
338
|
def gzip_report(report)
|
327
|
-
puts ['==>'
|
339
|
+
puts [green('==>'), 'Gzipping contents'].join(' ')
|
328
340
|
|
329
341
|
io = StringIO.new
|
330
342
|
gzip = Zlib::GzipWriter.new(io)
|
@@ -350,7 +362,7 @@ class SimpleCov::Formatter::Codecov
|
|
350
362
|
report['params'] = params
|
351
363
|
report['query'] = query
|
352
364
|
|
353
|
-
puts ['==>'
|
365
|
+
puts [green('==>'), 'Uploading reports'].join(' ')
|
354
366
|
puts " url: #{url}"
|
355
367
|
puts " query: #{query_without_token}"
|
356
368
|
|
@@ -368,7 +380,7 @@ class SimpleCov::Formatter::Codecov
|
|
368
380
|
https = Net::HTTP.new(uri.host, uri.port)
|
369
381
|
https.use_ssl = !url.match(/^https/).nil?
|
370
382
|
|
371
|
-
puts ['-> '
|
383
|
+
puts [green('-> '), 'Pinging Codecov'].join(' ')
|
372
384
|
puts "#{url}#{uri.path}?#{query_without_token}"
|
373
385
|
|
374
386
|
req = Net::HTTP::Post.new(
|
@@ -381,13 +393,13 @@ class SimpleCov::Formatter::Codecov
|
|
381
393
|
)
|
382
394
|
response = retry_request(req, https)
|
383
395
|
if !response&.code || response.code == '400'
|
384
|
-
puts response&.body
|
396
|
+
puts red(response&.body)
|
385
397
|
return false
|
386
398
|
end
|
387
399
|
|
388
400
|
reports_url = response.body.lines[0]
|
389
401
|
s3target = response.body.lines[1]
|
390
|
-
puts ['-> '
|
402
|
+
puts [green('-> '), 'Uploading to'].join(' ')
|
391
403
|
puts s3target
|
392
404
|
|
393
405
|
uri = URI(s3target)
|
@@ -412,8 +424,8 @@ class SimpleCov::Formatter::Codecov
|
|
412
424
|
'message' => 'Coverage reports upload successfully'
|
413
425
|
}.to_json
|
414
426
|
else
|
415
|
-
puts ['-> '
|
416
|
-
puts res.body
|
427
|
+
puts [black('-> '), 'Could not upload reports via v4 API, defaulting to v2'].join(' ')
|
428
|
+
puts red(res.body)
|
417
429
|
nil
|
418
430
|
end
|
419
431
|
end
|
@@ -423,7 +435,7 @@ class SimpleCov::Formatter::Codecov
|
|
423
435
|
https = Net::HTTP.new(uri.host, uri.port)
|
424
436
|
https.use_ssl = !url.match(/^https/).nil?
|
425
437
|
|
426
|
-
puts ['-> '
|
438
|
+
puts [green('-> '), 'Uploading to Codecov'].join(' ')
|
427
439
|
puts "#{url}#{uri.path}?#{query_without_token}"
|
428
440
|
|
429
441
|
req = Net::HTTP::Post.new(
|
@@ -444,7 +456,7 @@ class SimpleCov::Formatter::Codecov
|
|
444
456
|
if report['result']['uploaded']
|
445
457
|
puts " View reports at #{report['result']['url']}"
|
446
458
|
else
|
447
|
-
puts ' X> Failed to upload coverage reports'
|
459
|
+
puts red(' X> Failed to upload coverage reports')
|
448
460
|
end
|
449
461
|
end
|
450
462
|
|
@@ -499,7 +511,7 @@ class SimpleCov::Formatter::Codecov
|
|
499
511
|
'node_modules/'
|
500
512
|
]
|
501
513
|
|
502
|
-
puts ['==>'
|
514
|
+
puts [green('==>'), 'Appending file network'].join(' ')
|
503
515
|
network = []
|
504
516
|
Dir['**/*'].keep_if do |file|
|
505
517
|
if File.file?(file) && !file.end_with?(*invalid_file_types) && !file.include?(*invalid_directories)
|
@@ -585,24 +597,17 @@ class SimpleCov::Formatter::Codecov
|
|
585
597
|
|
586
598
|
true
|
587
599
|
end
|
588
|
-
end
|
589
|
-
|
590
|
-
# https://stackoverflow.com/a/11482430/5769383
|
591
|
-
class String
|
592
|
-
# colorization
|
593
|
-
def colorize(color_code)
|
594
|
-
"\e[#{color_code}m#{self}\e[0m"
|
595
|
-
end
|
596
600
|
|
597
|
-
|
598
|
-
|
601
|
+
# Convenience color methods
|
602
|
+
def black(str)
|
603
|
+
str.nil? ? '' : "\e[30m#{str}\e[0m"
|
599
604
|
end
|
600
605
|
|
601
|
-
def red
|
602
|
-
|
606
|
+
def red(str)
|
607
|
+
str.nil? ? '' : "\e[31m#{str}\e[0m"
|
603
608
|
end
|
604
609
|
|
605
|
-
def green
|
606
|
-
|
610
|
+
def green(str)
|
611
|
+
str.nil? ? '' : "\e[32m#{str}\e[0m"
|
607
612
|
end
|
608
613
|
end
|
data/test/test_codecov.rb
CHANGED
@@ -167,6 +167,12 @@ class TestCodecov < Minitest::Test
|
|
167
167
|
ENV['CIRCLE_PROJECT_USERNAME'] = nil
|
168
168
|
ENV['CIRCLE_SHA1'] = nil
|
169
169
|
ENV['CIRCLECI'] = nil
|
170
|
+
ENV['CODEBUILD_CI'] = nil
|
171
|
+
ENV['CODEBUILD_BUILD_ID'] = nil
|
172
|
+
ENV['CODEBUILD_RESOLVED_SOURCE_VERSION'] = nil
|
173
|
+
ENV['CODEBUILD_WEBHOOK_HEAD_REF'] = nil
|
174
|
+
ENV['CODEBUILD_SOURCE_VERSION'] = nil
|
175
|
+
ENV['CODEBUILD_SOURCE_REPO_URL'] = nil
|
170
176
|
ENV['CODECOV_ENV'] = nil
|
171
177
|
ENV['CODECOV_SLUG'] = nil
|
172
178
|
ENV['CODECOV_TOKEN'] = nil
|
@@ -612,6 +618,27 @@ class TestCodecov < Minitest::Test
|
|
612
618
|
assert_equal('f881216b-b5c0-4eb1-8f21-b51887d1d506', result['params']['token'])
|
613
619
|
end
|
614
620
|
|
621
|
+
def test_codebuild
|
622
|
+
ENV['CODEBUILD_CI'] = "true"
|
623
|
+
ENV['CODEBUILD_BUILD_ID'] = "codebuild-project:458dq3q8-7354-4513-8702-ea7b9c81efb3"
|
624
|
+
ENV['CODEBUILD_RESOLVED_SOURCE_VERSION'] = 'd653b934ed59c1a785cc1cc79d08c9aaa4eba73b'
|
625
|
+
ENV['CODEBUILD_WEBHOOK_HEAD_REF'] = 'refs/heads/master'
|
626
|
+
ENV['CODEBUILD_SOURCE_VERSION'] = 'pr/123'
|
627
|
+
ENV['CODEBUILD_SOURCE_REPO_URL'] = 'https://github.com/owner/repo.git'
|
628
|
+
ENV['CODECOV_TOKEN'] = 'f881216b-b5c0-4eb1-8f21-b51887d1d506'
|
629
|
+
|
630
|
+
result = upload
|
631
|
+
|
632
|
+
assert_equal("codebuild", result['params'][:service])
|
633
|
+
assert_equal("d653b934ed59c1a785cc1cc79d08c9aaa4eba73b", result['params'][:commit])
|
634
|
+
assert_equal("codebuild-project:458dq3q8-7354-4513-8702-ea7b9c81efb3", result['params'][:build])
|
635
|
+
assert_equal("codebuild-project:458dq3q8-7354-4513-8702-ea7b9c81efb3", result['params'][:job])
|
636
|
+
assert_equal("owner/repo", result['params'][:slug])
|
637
|
+
assert_equal("master", result['params'][:branch])
|
638
|
+
assert_equal("123", result['params'][:pr])
|
639
|
+
assert_equal('f881216b-b5c0-4eb1-8f21-b51887d1d506', result['params']['token'])
|
640
|
+
end
|
641
|
+
|
615
642
|
def test_filenames_are_shortened_correctly
|
616
643
|
ENV['CODECOV_TOKEN'] = 'f881216b-b5c0-4eb1-8f21-b51887d1d506'
|
617
644
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: codecov
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- codecov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-08-
|
11
|
+
date: 2020-08-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|