coveralls_reborn 0.22.0 → 0.23.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 55f0c6a60495529b2f17ec669e53349429fe67118650ebbafcd32a39321c0c5c
4
- data.tar.gz: 47eef8a83e435e6b91b27f4f121ba025021bbff6bca8d52c1ddf21599244b699
3
+ metadata.gz: 8d60acce3dea2248f73864689d5ad1fdfda5da46bb17b9666bf8bb94b911b070
4
+ data.tar.gz: 5c235845bb44951d9a53961aa6a9e4cd3dbed865d3d54d7bd3d7f5e1b7b535d6
5
5
  SHA512:
6
- metadata.gz: 11b1f829d3afccaca4d4dd4048a9618c70adcae02bf7d05cfa50826886646f3a1cd4e18b45ea7804c3bc34325678c27b9520f240d8527e0c9b0c19b3dfd92bb9
7
- data.tar.gz: e653bf5519256740d3f1b00d769f227b1ddf04feb3477edc0e61f64bfcc60006509ee376b46a36247bb60efeb06936d193aa3690dde9d859da9d6856280543ed
6
+ metadata.gz: 52c45871f2b938204024cc0479d2663a49818fd4a675cf56b315a767576658663c32beb136d9ac30a5bb853ff97bc434f8f9ca621a5d420d9e4719c2d5e139ab
7
+ data.tar.gz: ca395d514b29d860a8462847cfc20419e5ae0300b964d9d51491e55f046cd0b6cb5f5bc651036ffc2b48a7ad2bfb8c93bc69f3997fab5879c58c20810e81405c
@@ -0,0 +1,29 @@
1
+ name: Rubocop
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ branches: [ main ]
8
+
9
+ jobs:
10
+ rubocop:
11
+ name: Rubocop
12
+ runs-on: ${{ matrix.os }}
13
+ env:
14
+ BUNDLE_JOBS: 4
15
+ BUNDLE_RETRY: 3
16
+ strategy:
17
+ matrix:
18
+ os: [ubuntu-latest]
19
+ ruby-version: ['2.5']
20
+
21
+ steps:
22
+ - uses: actions/checkout@v2
23
+ - name: Set up Ruby
24
+ uses: ruby/setup-ruby@v1
25
+ with:
26
+ ruby-version: ${{ matrix.ruby-version }}
27
+ bundler-cache: true
28
+ - name: Ruby linter
29
+ run: bundle exec rubocop
@@ -0,0 +1,51 @@
1
+ name: Ruby specs
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ branches: [ main ]
8
+
9
+ jobs:
10
+ test:
11
+ name: Tests
12
+ runs-on: ubuntu-latest
13
+ strategy:
14
+ matrix:
15
+ ruby-version: ['2.5', '2.6', '2.7', '3.0']
16
+ experimental: [false]
17
+
18
+ include:
19
+ - ruby-version: 'head'
20
+ experimental: true
21
+ - ruby-version: 'jruby-9.2'
22
+ experimental: true
23
+
24
+ continue-on-error: ${{ matrix.experimental }}
25
+
26
+ steps:
27
+ - uses: actions/checkout@v2
28
+ - name: Set up Ruby
29
+ uses: ruby/setup-ruby@v1
30
+ with:
31
+ ruby-version: ${{ matrix.ruby-version }}
32
+ bundler-cache: true
33
+ - name: Run specs
34
+ run: JRUBY_OPTS="--dev --debug" bundle exec rake spec
35
+ - name: Coveralls Parallel
36
+ uses: coverallsapp/github-action@master
37
+ with:
38
+ github-token: ${{ secrets.github_token }}
39
+ flag-name: run-${{ matrix.ruby-version }}
40
+ parallel: true
41
+
42
+ coverage:
43
+ name: Coverage
44
+ needs: test
45
+ runs-on: ubuntu-latest
46
+ steps:
47
+ - name: Coveralls Finished
48
+ uses: coverallsapp/github-action@master
49
+ with:
50
+ github-token: ${{ secrets.github_token }}
51
+ parallel-finished: true
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.23.0 / 2021-09-12
4
+
5
+ * [FEATURE] Send branches coverage [#27](https://github.com/tagliala/coveralls-ruby-reborn/pull/27/files)
6
+
3
7
  ## 0.22.0 / 2021-04-30
4
8
 
5
9
  * [FEATURE] Drop Ruby 2.4 support
data/Gemfile CHANGED
@@ -14,10 +14,10 @@ gem 'pry', '~> 0.13.1'
14
14
  gem 'pry-byebug', '~> 3.9', platforms: %i[mri mingw x64_mingw]
15
15
  gem 'rake', '~> 13.0'
16
16
  gem 'rspec', '~> 3.10'
17
- gem 'rubocop', '~> 1.13'
17
+ gem 'rubocop', '~> 1.20'
18
18
  gem 'rubocop-performance', '~> 1.11'
19
- gem 'rubocop-rake', '~> 0.5.1'
20
- gem 'rubocop-rspec', '~> 2.2'
19
+ gem 'rubocop-rake', '~> 0.6.0'
20
+ gem 'rubocop-rspec', '~> 2.4'
21
21
  gem 'truthy', '~> 1.0'
22
22
  gem 'vcr', '~> 6.0'
23
- gem 'webmock', '~> 3.12'
23
+ gem 'webmock', '~> 3.14'
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # [Coveralls Reborn](https://coveralls.io) for Ruby [![Coverage Status](https://coveralls.io/repos/github/tagliala/coveralls-ruby-reborn/badge.svg?branch=main)](https://coveralls.io/github/tagliala/coveralls-ruby-reborn?branch=main) [![Build Status](https://secure.travis-ci.org/tagliala/coveralls-ruby-reborn.svg?branch=main)](https://travis-ci.org/tagliala/coveralls-ruby-reborn) [![Gem Version](https://badge.fury.io/rb/coveralls_reborn.svg)](https://badge.fury.io/rb/coveralls_reborn)
1
+ # [Coveralls Reborn](https://coveralls.io) for Ruby [![Coverage Status](https://coveralls.io/repos/github/tagliala/coveralls-ruby-reborn/badge.svg?branch=main)](https://coveralls.io/github/tagliala/coveralls-ruby-reborn?branch=main) ![Build Status](https://github.com/tagliala/coveralls-ruby-reborn/actions/workflows/ruby.yml/badge.svg) [![Gem Version](https://badge.fury.io/rb/coveralls_reborn.svg)](https://badge.fury.io/rb/coveralls_reborn)
2
2
 
3
3
  ### [Read the docs →](https://docs.coveralls.io/ruby-on-rails)
4
4
 
@@ -7,5 +7,40 @@ An up-to-date fork of [lemurheavy/coveralls-ruby](https://github.com/lemurheavy/
7
7
  Add to your `Gemfile`:
8
8
 
9
9
  ```rb
10
- gem 'coveralls_reborn', '~> 0.22.0', require: false
10
+ gem 'coveralls_reborn', '~> 0.23.0', require: false
11
11
  ```
12
+
13
+ ### GitHub Actions
14
+
15
+ Psst... you don't need this gem on GitHub Actions.
16
+
17
+ For a Rails application, just add
18
+
19
+ ```rb
20
+ gem 'simplecov-lcov', '~> 0.8.0'
21
+ ```
22
+
23
+ to your `Gemfile` and
24
+
25
+ ```rb
26
+ require 'simplecov'
27
+
28
+ SimpleCov.start 'rails' do
29
+ if ENV['CI']
30
+ require 'simplecov-lcov'
31
+
32
+ SimpleCov::Formatter::LcovFormatter.config do |c|
33
+ c.report_with_single_file = true
34
+ c.single_report_path = 'coverage/lcov.info'
35
+ end
36
+
37
+ formatter SimpleCov::Formatter::LcovFormatter
38
+ end
39
+
40
+ add_filter %w[version.rb initializer.rb]
41
+ end
42
+ ```
43
+
44
+ at the top of `spec_helper.rb` / `rails_helper.rb` / `test_helper.rb`.
45
+
46
+ Then follow instructions at [Coveralls GitHub Action](https://github.com/marketplace/actions/coveralls-github-action)
data/Rakefile CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  require 'bundler/gem_tasks'
4
4
 
5
- # Travis!
6
5
  require 'rubygems'
7
6
  require 'rake'
8
7
  require 'rspec/core/rake_task'
@@ -31,4 +31,5 @@ Gem::Specification.new do |gem|
31
31
  gem.add_dependency 'tins', '~> 1.16'
32
32
 
33
33
  gem.add_development_dependency 'bundler', '>= 1.16', '< 3'
34
+ gem.add_development_dependency 'simplecov-lcov', '~> 0.8.0'
34
35
  end
@@ -45,6 +45,7 @@ module Coveralls
45
45
 
46
46
  # Get the coverage
47
47
  properties[:coverage] = file.coverage_data['lines']
48
+ properties[:branches] = branches(file.coverage_data['branches']) if file.coverage_data['branches']
48
49
 
49
50
  # Skip nocov lines
50
51
  file.lines.each_with_index do |line, i|
@@ -57,6 +58,19 @@ module Coveralls
57
58
  source_files
58
59
  end
59
60
 
61
+ def branches(simplecov_branches)
62
+ branches_properties = []
63
+ simplecov_branches.each do |branch_data, data|
64
+ branch_number = 0
65
+ line_number = branch_data.split(', ')[2].to_i
66
+ data.each_value do |hits|
67
+ branch_number += 1
68
+ branches_properties.concat([line_number, 0, branch_number, hits])
69
+ end
70
+ end
71
+ branches_properties
72
+ end
73
+
60
74
  def format(result)
61
75
  unless Coveralls.should_run?
62
76
  display_result result if Coveralls.noisy?
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Coveralls
4
- VERSION = '0.22.0'
4
+ VERSION = '0.23.0'
5
5
  end
@@ -7,4 +7,10 @@ class Foo
7
7
  def bar
8
8
  @foo
9
9
  end
10
+
11
+ def foo
12
+ if @foo
13
+ 'bar'
14
+ end
15
+ end
10
16
  end
@@ -18,7 +18,15 @@ describe Coveralls::SimpleCov::Formatter do
18
18
  source_fixture('app/models/dog.rb') => { lines: [1, 1, 1, 1, 1] },
19
19
  source_fixture('app/models/house.rb') => { lines: [nil, nil, nil, nil, nil, nil, nil, nil, nil, nil] },
20
20
  source_fixture('app/models/robot.rb') => { lines: [1, 1, 1, 1, nil, nil, 1, 0, nil, nil] },
21
- source_fixture('app/models/user.rb') => { lines: [nil, 1, 1, 1, 1, 0, 1, 0, nil, nil] },
21
+ source_fixture('app/models/user.rb') => {
22
+ lines: [nil, 1, 1, 0, nil, nil, 1, 0, nil, nil, 1, 0, 0, nil, nil, nil],
23
+ 'branches' => {
24
+ '[:if, 0, 12, 4, 14, 7]' => {
25
+ '[:then, 1, 13, 6, 13, 11]' => 1,
26
+ '[:else, 2, 12, 4, 14, 7]' => 0
27
+ }
28
+ }
29
+ },
22
30
  source_fixture('sample.rb') => { lines: [nil, 1, 1, 1, nil, 0, 1, 1, nil, nil] }
23
31
  }
24
32
 
@@ -74,12 +82,38 @@ describe Coveralls::SimpleCov::Formatter do
74
82
  end
75
83
 
76
84
  describe '#get_source_files' do
77
- let(:source_files) { described_class.new.get_source_files(result) }
85
+ let(:source_files) { instance.get_source_files(result) }
86
+ let(:instance) do
87
+ described_class.new.tap do |ins|
88
+ allow(ins).to receive(:branches)
89
+ end
90
+ end
78
91
 
79
92
  it 'nils the skipped lines' do
80
93
  source_file = source_files.first
81
94
  expect(source_file[:coverage]).to eq [nil, 1, 1, 1, nil, 0, 1, 1, nil, nil, nil, nil, nil]
82
95
  end
96
+
97
+ it 'calls #branches when branch coverage is present' do
98
+ source_files
99
+ expect(instance).to have_received(:branches).once
100
+ end
101
+ end
102
+
103
+ describe '#branches' do
104
+ let(:branch_coverage_parsed) { described_class.new.branches(simplecov_branches_results) }
105
+ let(:simplecov_branches_results) do
106
+ {
107
+ '[:if, 0, 12, 4, 14, 7]' => {
108
+ '[:then, 1, 13, 6, 13, 11]' => 1,
109
+ '[:else, 2, 12, 4, 14, 7]' => 0
110
+ }
111
+ }
112
+ end
113
+
114
+ it 'return coveralls required structure' do
115
+ expect(branch_coverage_parsed).to eq [12, 0, 1, 1, 12, 0, 2, 0]
116
+ end
83
117
  end
84
118
 
85
119
  describe '#short_filename' do
data/spec/spec_helper.rb CHANGED
@@ -13,11 +13,25 @@ class InceptionFormatter
13
13
  end
14
14
 
15
15
  def setup_formatter
16
- SimpleCov.formatter = if ENV['TRAVIS'] || ENV['COVERALLS_REPO_TOKEN']
17
- InceptionFormatter
18
- else
19
- SimpleCov::Formatter::HTMLFormatter
20
- end
16
+ if ENV['GITHUB_ACTIONS']
17
+ require 'simplecov-lcov'
18
+
19
+ SimpleCov::Formatter::LcovFormatter.config do |c|
20
+ c.report_with_single_file = true
21
+ c.single_report_path = 'coverage/lcov.info'
22
+ end
23
+ end
24
+
25
+ SimpleCov.formatter =
26
+ if ENV['CI'] || ENV['COVERALLS_REPO_TOKEN']
27
+ if ENV['GITHUB_ACTIONS']
28
+ SimpleCov::Formatter::MultiFormatter.new([InceptionFormatter, SimpleCov::Formatter::LcovFormatter])
29
+ else
30
+ InceptionFormatter
31
+ end
32
+ else
33
+ SimpleCov::Formatter::HTMLFormatter
34
+ end
21
35
 
22
36
  SimpleCov.start do
23
37
  add_filter do |source_file|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coveralls_reborn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.0
4
+ version: 0.23.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Merwin
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2021-04-30 00:00:00.000000000 Z
13
+ date: 2021-09-12 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: simplecov
@@ -100,6 +100,20 @@ dependencies:
100
100
  - - "<"
101
101
  - !ruby/object:Gem::Version
102
102
  version: '3'
103
+ - !ruby/object:Gem::Dependency
104
+ name: simplecov-lcov
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: 0.8.0
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: 0.8.0
103
117
  description: A Ruby implementation of the Coveralls API.
104
118
  email:
105
119
  - nick@lemurheavy.com
@@ -111,10 +125,11 @@ extensions: []
111
125
  extra_rdoc_files: []
112
126
  files:
113
127
  - ".github/dependabot.yml"
128
+ - ".github/workflows/rubocop.yml"
129
+ - ".github/workflows/ruby.yml"
114
130
  - ".gitignore"
115
131
  - ".rspec"
116
132
  - ".rubocop.yml"
117
- - ".travis.yml"
118
133
  - CHANGELOG.md
119
134
  - Gemfile
120
135
  - LICENSE
data/.travis.yml DELETED
@@ -1,33 +0,0 @@
1
- os: linux
2
- dist: focal
3
- language: ruby
4
-
5
- cache: bundler
6
-
7
- env:
8
- global:
9
- # --dev improves JRuby startup time
10
- # --debug reports proper coverage to SimpleCov
11
- # See https://github.com/jruby/jruby/wiki/Improving-startup-time
12
- - JRUBY_OPTS="--dev --debug"
13
-
14
- rvm:
15
- - 2.5.9
16
- - 2.6.7
17
- - 2.7.3
18
- - 3.0.1
19
- - ruby-head
20
- - jruby-9.2.17.0
21
-
22
- jobs:
23
- allow_failures:
24
- - rvm: ruby-head
25
- - rvm: jruby-9.2.17.0
26
- include:
27
- - rvm: 2.5.9
28
- gemfile: Gemfile
29
- script: bundle exec rake rubocop
30
- name: RuboCop
31
- fast_finish: true
32
-
33
- script: bundle exec rake spec