coveralls_reborn 0.22.0 → 0.23.1

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: 59cf0bf0bed37f09d99147f9378f01bd64904a61c9f37b0fc22fe9fbb4faf36a
4
+ data.tar.gz: '0082dd37bc4b95e04cd971e599f014566bc17078174ca3c29c5d65e615f6c2c9'
5
5
  SHA512:
6
- metadata.gz: 11b1f829d3afccaca4d4dd4048a9618c70adcae02bf7d05cfa50826886646f3a1cd4e18b45ea7804c3bc34325678c27b9520f240d8527e0c9b0c19b3dfd92bb9
7
- data.tar.gz: e653bf5519256740d3f1b00d769f227b1ddf04feb3477edc0e61f64bfcc60006509ee376b46a36247bb60efeb06936d193aa3690dde9d859da9d6856280543ed
6
+ metadata.gz: 25ff04c1efe1e2889d56feae2960f02609c3a8b857717bfbcc061b413303861b68994827a1f881c377ee4fdfac51e4a282e4ffb6ec3306adba9c8f60c631d0b9
7
+ data.tar.gz: 10207daf744bb396ba7e1a4d4059e0b0987d28ed7805d615d45321591f17436b55a2d8d7e7978bc92992a828a15cce6276387fa1bd020b9c6c8f980da4f6897e
@@ -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,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.23.1 / 2021-11-15
4
+
5
+ * [ENHANCEMENT] Require MFA to publish gems
6
+ * [ENHANCEMENT] Update development dependencies
7
+
8
+ ## 0.23.0 / 2021-09-12
9
+
10
+ * [FEATURE] Send branches coverage [#27](https://github.com/tagliala/coveralls-ruby-reborn/pull/27/files)
11
+
3
12
  ## 0.22.0 / 2021-04-30
4
13
 
5
14
  * [FEATURE] Drop Ruby 2.4 support
data/Gemfile CHANGED
@@ -6,7 +6,7 @@ source 'https://rubygems.org'
6
6
  gemspec
7
7
 
8
8
  platforms :jruby do
9
- gem 'jruby-openssl', '~> 0.10.2'
9
+ gem 'jruby-openssl', '~> 0.11.0'
10
10
  end
11
11
 
12
12
  gem 'byebug', '~> 11.1', platforms: %i[mri mingw x64_mingw]
@@ -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'
18
- gem 'rubocop-performance', '~> 1.11'
19
- gem 'rubocop-rake', '~> 0.5.1'
20
- gem 'rubocop-rspec', '~> 2.2'
17
+ gem 'rubocop', '~> 1.23'
18
+ gem 'rubocop-performance', '~> 1.12'
19
+ gem 'rubocop-rake', '~> 0.6.0'
20
+ gem 'rubocop-rspec', '~> 2.6'
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,11 +1,46 @@
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
- ### [Read the docs →](https://docs.coveralls.io/ruby-on-rails)
3
+ ### [Read the docs →](https://docs.coveralls.io/ruby-and-rails)
4
4
 
5
5
  An up-to-date fork of [lemurheavy/coveralls-ruby](https://github.com/lemurheavy/coveralls-ruby)
6
6
 
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.1', 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'
@@ -19,6 +19,8 @@ Gem::Specification.new do |gem|
19
19
  gem.require_paths = ['lib']
20
20
  gem.version = Coveralls::VERSION
21
21
 
22
+ gem.metadata['rubygems_mfa_required'] = 'true'
23
+
22
24
  gem.metadata['bug_tracker_uri'] = 'https://github.com/tagliala/coveralls-ruby-reborn/issues'
23
25
  gem.metadata['changelog_uri'] = 'https://github.com/tagliala/coveralls-ruby-reborn/blob/main/CHANGELOG.md'
24
26
  gem.metadata['source_code_uri'] = 'https://github.com/tagliala/coveralls-ruby-reborn'
@@ -31,4 +33,5 @@ Gem::Specification.new do |gem|
31
33
  gem.add_dependency 'tins', '~> 1.16'
32
34
 
33
35
  gem.add_development_dependency 'bundler', '>= 1.16', '< 3'
36
+ gem.add_development_dependency 'simplecov-lcov', '~> 0.8.0'
34
37
  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.1'
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.1
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-11-15 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
@@ -147,6 +162,7 @@ homepage: https://coveralls.io
147
162
  licenses:
148
163
  - MIT
149
164
  metadata:
165
+ rubygems_mfa_required: 'true'
150
166
  bug_tracker_uri: https://github.com/tagliala/coveralls-ruby-reborn/issues
151
167
  changelog_uri: https://github.com/tagliala/coveralls-ruby-reborn/blob/main/CHANGELOG.md
152
168
  source_code_uri: https://github.com/tagliala/coveralls-ruby-reborn
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