coveralls_reborn 0.22.0 → 0.23.0

Sign up to get free protection for your applications and to get access to all the features.
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