codecov 0.4.0 → 0.5.1

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: 28cb9ca7e98d8d586f0c8118cc099def187c61c2cd1bc36882dd835959030404
4
- data.tar.gz: 2ae5223947def7a015e0b92fb591f1090cb086406d7f44e284a241a022a54fa4
3
+ metadata.gz: eda9a2c15cf9bca5603e8da966b08f4e74a880d225b1e367581f231c41bc6c54
4
+ data.tar.gz: dd8dfbafe0b700149632bcc252154b64d56324e7539ff535cd1a5a354c93485d
5
5
  SHA512:
6
- metadata.gz: f43851f9d6c5b8603bea783df5f52dfc40cc5290dfeb741cee23639bd00a60ab1916b73001f7b17652b11839f995b8bc963b151a71e4a7615510f1f129fe6d28
7
- data.tar.gz: '082f364e342d308a06b25c7955949e225bc8c93d730cbb86d1542c881175441740ffd802e070c071a65f45a8e5df4a536fd4811ef0fc18d732d9e04a8dc046bb'
6
+ metadata.gz: 84fb4095ba5a0a99f7a4089ca1f391f32703aa5ce8f5e31bb2de1a59dd6b559609d7ca83fa33b44695d9b6b3d34f6828b63435665142ac94a3750c0947895978
7
+ data.tar.gz: 1278f5daa1420a6926352164efec3922099d81fce34f6dc6140aa7166ebc54f8ffd3c47c781c3d07ca3d7bbbf4eb589c3ca12145458d1f6edfa0a3c4c43a5184
data/CHANGELOG.md ADDED
@@ -0,0 +1,130 @@
1
+ ### `0.5.1`
2
+ - #138 Update pass_ci_if_error flag
3
+
4
+ ### `0.5.0`
5
+ - #137 Place uploader in try/rescue block and add pass_ci_if_error flag
6
+
7
+ ### `0.4.3`
8
+ - #135 Shorten coverage message on formatter
9
+
10
+ ### `0.4.2`
11
+ - #134 Wrap file creation in try/catch
12
+
13
+ ### `0.4.1`
14
+ - #133 Write down to file when using the formatter
15
+
16
+ ### `0.4.0`
17
+ - #130 Split uploader from formatter
18
+
19
+ ### `0.3.0`
20
+ - #124 Ruby 3.0 support
21
+ - #125 open simplecov requirement to 0.21.x
22
+
23
+ ### `0.2.15`
24
+ - #118 Include codecov/version in the gem
25
+
26
+ ### `0.2.14`
27
+ - #107 Add EditorConfig file
28
+ - #113 Return version constant, don't duplicate version value
29
+ - #117 Update simplecov dependency versions
30
+
31
+ ### `0.2.13`
32
+ - [#105](https://github.com/codecov/codecov-ruby/pull/105) Remove unnecessary dependency for ruby standard gem
33
+ - [#110](https://github.com/codecov/codecov-ruby/pull/110) Fix GitHub Actions
34
+ - [#111](https://github.com/codecov/codecov-ruby/pull/111) Fix branch name detection for GitHub Actions CI
35
+
36
+ ### `0.2.12`
37
+ - [#102](https://github.com/codecov/codecov-ruby/pull/102) Fix value of params[:pr] when useing CodeBuild
38
+
39
+ ### `0.2.11`
40
+ - Add vendor/ to invalid directories
41
+
42
+ ### `0.2.10`
43
+ - Adds better logging on error cases
44
+ - Add more invalid directories in the network
45
+
46
+ ### `0.2.9`
47
+ - Remove `String` specific colors
48
+ - Add support for Codebuild CI
49
+
50
+ ### `0.2.8`
51
+ - Remove `colorize` dependency
52
+
53
+ ### `0.2.7`
54
+ - Fix for enterprise users unable to upload using the v4 uploader
55
+
56
+ ### `0.2.6`
57
+ - Fix issue with `push` events on GitHub Actions
58
+
59
+ ### `0.2.5`
60
+ - Revert single use of VERSION
61
+
62
+ ### `0.2.4`
63
+ - Adds support for GitHub Actions CI
64
+
65
+ ### `0.2.3`
66
+ - Support uploads for jruby 9.1 and 9.2
67
+
68
+ ### `0.2.2`
69
+ - Handle SocketError and better error handling of v4 failures
70
+
71
+ ### `0.2.1`
72
+ - Properly handle 400 cases when using the v4 endpoint
73
+
74
+ ### `0.2.0`
75
+ - move to the v4 upload endpoint with the v2 as a fallback
76
+
77
+ ### `0.1.20`
78
+ - fix critical upload issues on V2 endpoint
79
+
80
+ ### `0.1.19`
81
+ - fix colorize
82
+
83
+ ### `0.1.18`
84
+ - refactor and move to use v2 endpoint
85
+ - use Timeout::Error
86
+
87
+ ### `0.1.17`
88
+ - refactor upload method and add more logging
89
+
90
+ ### `0.1.10`
91
+ - update numerous ci environments
92
+ - dont fail if cannot upload to codecov
93
+
94
+ ### `0.1.3`
95
+ - add buildkite
96
+
97
+ ### `0.1.2`
98
+ - add slug argument
99
+ - use slug for uploading
100
+ - add Accept to uploads
101
+
102
+ ### `0.1.1`
103
+ - fix #6, thanks @justmatt
104
+ - add semaphore thread number
105
+
106
+ ### `0.1.0`
107
+ - added more CircleCI env
108
+
109
+ ### `0.0.11`
110
+ - send AppVeyor pr# with reports
111
+
112
+ ### `0.0.10`
113
+ - fix AppVeyor for public repos
114
+
115
+ ### `0.0.9`
116
+ - remove tmp.json creation
117
+
118
+ ### `0.0.8`
119
+ - added more jenkins environment references
120
+
121
+ ### `0.0.7`
122
+ - added GitLab CI Runner support
123
+
124
+ ### `0.0.5`
125
+ - added line messages by @coderanger
126
+ - fixed skip lines during reporting by @coderanger
127
+
128
+ ### `0.0.4`
129
+ - added more test
130
+ - added more CI providers
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License (MIT)
2
+
3
+ Copyright (c) 2015 Codecov
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,111 @@
1
+ # Codecov Ruby Uploader
2
+
3
+ ## DEPRECATION WARNING
4
+
5
+ All versions of the Ruby uploader prior to `0.2.0` will no longer be supported
6
+ and will be removed from public use on or after *2020-08-17*.
7
+ Please upgrade to the latest versions to continue using this uploader.
8
+
9
+ [![Codecov](https://codecov.io/github/codecov/codecov-ruby/coverage.svg?branch=master)](https://codecov.io/github/codecov/codecov-ruby?branch=master)
10
+ [![Gem Version](https://badge.fury.io/rb/codecov.svg)](https://rubygems.org/gems/codecov)
11
+ [![Build Status](https://secure.travis-ci.org/codecov/codecov-ruby.svg?branch=master)](http://travis-ci.org/codecov/codecov-ruby)
12
+ [![Codecov](https://circleci.com/gh/codecov/codecov-ruby.svg?style=svg)](https://circleci.com/gh/codecov/codecov-ruby)
13
+ [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fcodecov%2Fcodecov-ruby.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fcodecov%2Fcodecov-ruby?ref=badge_shield)
14
+
15
+
16
+ [Codecov.io](https://codecov.io/) upload support for Ruby.
17
+
18
+ ## Quick Start
19
+
20
+ Add to your `Gemfile`:
21
+
22
+ ```ruby
23
+ gem 'codecov', require: false, group: 'test'
24
+ ```
25
+
26
+ Add to the top of your `tests/helper.rb` file:
27
+
28
+ ```ruby
29
+ require 'simplecov'
30
+ SimpleCov.start
31
+
32
+ require 'codecov'
33
+ SimpleCov.formatter = SimpleCov::Formatter::Codecov
34
+ ```
35
+
36
+ Add CI Environment Variable:
37
+
38
+ ```sh
39
+ CODECOV_TOKEN="your repo token"
40
+ ```
41
+
42
+ Find you repo token on your repo page at [codecov.io](https://codecov.io).
43
+ Repo tokens are **not** required for public repos on Travis-Ci, CircleCI, or AppVeyor CI.
44
+
45
+ ## Supported CIs
46
+ | CI/CD |
47
+ | ----- |
48
+ | [AppVeyor CI](https://www.appveyor.com/) |
49
+ | [Azure Pipelines](https://azure.microsoft.com/en-us/services/devops/pipelines/) |
50
+ | [Bitbucket Pipelines](https://bitbucket.org/product/features/pipelines) |
51
+ | [Bitrise CI](https://www.bitrise.io/) |
52
+ | [Buildkite CI](https://buildkite.com/) |
53
+ | [CodeBuild CI](https://aws.amazon.com/codebuild/) |
54
+ | [CodePipeline](https://aws.amazon.com/codepipeline/) |
55
+ | [Circle CI](https://circleci.com/) |
56
+ | [Codeship CI](https://codeship.com/) |
57
+ | [Drone CI](https://drone.io/) |
58
+ | [GitLab CI](https://docs.gitlab.com/ee/ci/) |
59
+ | [Heroku CI](https://www.heroku.com/continuous-integration) |
60
+ | [Jenkins CI](https://www.jenkins.io/) |
61
+ | [Semaphore CI](https://semaphoreci.com/) |
62
+ | [Shippable](https://www.shippable.com/) |
63
+ | [Solano CI](https://xebialabs.com/technology/solano-ci/) |
64
+ | [TeamCity CI](https://www.jetbrains.com/teamcity/) |
65
+ | [Travis CI](https://travis-ci.org/) |
66
+ | [Wercker CI](https://devcenter.wercker.com/) |
67
+
68
+ ## Advanced Usage
69
+
70
+ #### Submit only in CI example
71
+
72
+ ```ruby
73
+ if ENV['CI'] == 'true'
74
+ require 'codecov'
75
+ SimpleCov.formatter = SimpleCov::Formatter::Codecov
76
+ end
77
+ ```
78
+
79
+ ## Useful Links
80
+
81
+ [FAQ](https://docs.codecov.io/docs/frequently-asked-questions)
82
+ [Recipe List](https://docs.codecov.io/docs/common-recipe-list)
83
+ [Error Reference](https://docs.codecov.io/docs/error-reference)
84
+ [Changelog](./CHANGELOG.md)
85
+ [Support](https://codecov.io/support)
86
+ [Community Boards](https://community.codecov.io)
87
+
88
+ ## Caveats
89
+
90
+ 1. There are known issues when `Simplecov.track_files` is enabled. We recommend that you require all code files in your tests so that SimpleCov can provide Codecov with properly mapped coverage report metrics. [codecov/support#133]( https://github.com/codecov/support/issues/133)
91
+ - https://github.com/colszowka/simplecov/blob/master/README.md#default-root-filter-and-coverage-for-things-outside-of-it
92
+ 2. `git` must be installed.
93
+ - https://github.com/codecov/codecov-ruby/blob/5e3dae3/lib/codecov.rb#L284-L295
94
+
95
+ ## Maintainers
96
+
97
+ - [thomasrockhu](https://github.com/thomasrockhu)
98
+
99
+ ## Enterprise
100
+
101
+ For companies using Codecov Enterprise you will need to specify the following parameters:
102
+
103
+ ```sh
104
+ CODECOV_URL="https://codecov.mycompany.com"
105
+ CODECOV_SLUG="owner/repo"
106
+ CODECOV_TOKEN="repository token or global token"
107
+ ```
108
+
109
+
110
+ ## License
111
+ [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fcodecov%2Fcodecov-ruby.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fcodecov%2Fcodecov-ruby?ref=badge_large)
data/lib/codecov.rb CHANGED
@@ -11,7 +11,7 @@ require_relative 'codecov/uploader'
11
11
 
12
12
  class SimpleCov::Formatter::Codecov
13
13
  def format(result, disable_net_blockers = true)
14
- report = Codecov::SimpleCov::Formatter.format(result)
14
+ report = Codecov::SimpleCov::Formatter.new.format(result)
15
15
  Codecov::Uploader.upload(report, disable_net_blockers)
16
16
  end
17
17
  end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Codecov
4
+ module Configuration
5
+ attr_accessor :pass_ci_if_error
6
+ end
7
+ end
@@ -4,122 +4,123 @@ require 'simplecov'
4
4
 
5
5
  require_relative 'version'
6
6
 
7
- module Codecov::SimpleCov
8
- class Formatter
9
- def self.format(report)
10
- result = {
11
- 'meta' => {
12
- 'version' => "codecov-ruby/v#{::Codecov::VERSION}"
7
+ module Codecov
8
+ module SimpleCov
9
+ class Formatter
10
+ RESULT_FILE_NAME = 'codecov-result.json'
11
+
12
+ def format(report)
13
+ result = {
14
+ 'meta' => {
15
+ 'version' => "codecov-ruby/v#{::Codecov::VERSION}"
16
+ }
13
17
  }
14
- }
15
- result.update(result_to_codecov(report))
16
- result
17
- end
18
+ result.update(result_to_codecov(report))
19
+
20
+ begin
21
+ result_path = File.join(::SimpleCov.coverage_path, RESULT_FILE_NAME)
22
+ File.write(result_path, result['codecov'])
23
+ overflow = result['coverage'].to_s.length > 256 ? '...' : ''
24
+ puts "Coverage report generated to #{result_path}.\n#{result['coverage'].to_s.[](0, 255)}#{overflow}"
25
+ rescue Errno::ENOENT => e
26
+ puts e
27
+ puts "Could not write coverage report to file.\n#{result}"
28
+ end
18
29
 
19
- private
20
-
21
- # Format SimpleCov coverage data for the Codecov.io API.
22
- #
23
- # @param result [SimpleCov::Result] The coverage data to process.
24
- # @return [Hash]
25
- def self.result_to_codecov(result)
26
- {
27
- 'codecov' => result_to_codecov_report(result),
28
- 'coverage' => result_to_codecov_coverage(result),
29
- 'messages' => result_to_codecov_messages(result)
30
- }
31
- end
30
+ result
31
+ end
32
32
 
33
- def self.result_to_codecov_report(result)
34
- report = file_network.join("\n").concat("\n")
35
- report.concat({ 'coverage' => result_to_codecov_coverage(result) }.to_json)
36
- end
33
+ private
34
+
35
+ # Format SimpleCov coverage data for the Codecov.io API.
36
+ #
37
+ # @param result [SimpleCov::Result] The coverage data to process.
38
+ # @return [Hash]
39
+ def result_to_codecov(result)
40
+ {
41
+ 'codecov' => result_to_codecov_report(result),
42
+ 'coverage' => result_to_codecov_coverage(result),
43
+ 'messages' => result_to_codecov_messages(result)
44
+ }
45
+ end
37
46
 
38
- def self.file_network
39
- invalid_file_types = [
40
- 'woff', 'eot', 'otf', # fonts
41
- 'gif', 'png', 'jpg', 'jpeg', 'psd', # images
42
- 'ptt', 'pptx', 'numbers', 'pages', 'md', 'txt', 'xlsx', 'docx', 'doc', 'pdf', 'csv', # docs
43
- 'yml', 'yaml', '.gitignore'
44
- ].freeze
45
-
46
- invalid_directories = [
47
- 'node_modules/',
48
- 'public/',
49
- 'storage/',
50
- 'tmp/',
51
- 'vendor/'
52
- ]
53
-
54
- puts [green('==>'), 'Appending file network'].join(' ')
55
- network = []
56
- Dir['**/*'].keep_if do |file|
57
- if File.file?(file) && !file.end_with?(*invalid_file_types) && invalid_directories.none? { |dir| file.include?(dir) }
58
- network.push(file)
59
- end
47
+ def result_to_codecov_report(result)
48
+ report = file_network.join("\n").concat("\n")
49
+ report.concat({ 'coverage' => result_to_codecov_coverage(result) }.to_json)
60
50
  end
61
51
 
62
- network.push('<<<<<< network')
63
- network
64
- end
52
+ def file_network
53
+ invalid_file_types = [
54
+ 'woff', 'eot', 'otf', # fonts
55
+ 'gif', 'png', 'jpg', 'jpeg', 'psd', # images
56
+ 'ptt', 'pptx', 'numbers', 'pages', 'md', 'txt', 'xlsx', 'docx', 'doc', 'pdf', 'csv', # docs
57
+ 'yml', 'yaml', '.gitignore'
58
+ ].freeze
59
+
60
+ invalid_directories = [
61
+ 'node_modules/',
62
+ 'public/',
63
+ 'storage/',
64
+ 'tmp/',
65
+ 'vendor/'
66
+ ]
67
+
68
+ network = []
69
+ Dir['**/*'].keep_if do |file|
70
+ if File.file?(file) && !file.end_with?(*invalid_file_types) && invalid_directories.none? { |dir| file.include?(dir) }
71
+ network.push(file)
72
+ end
73
+ end
65
74
 
66
- # Format SimpleCov coverage data for the Codecov.io coverage API.
67
- #
68
- # @param result [SimpleCov::Result] The coverage data to process.
69
- # @return [Hash<String, Array>]
70
- def self.result_to_codecov_coverage(result)
71
- result.files.each_with_object({}) do |file, memo|
72
- memo[shortened_filename(file)] = file_to_codecov(file)
75
+ network.push('<<<<<< network')
76
+ network
73
77
  end
74
- end
75
78
 
76
- # Format SimpleCov coverage data for the Codecov.io messages API.
77
- #
78
- # @param result [SimpleCov::Result] The coverage data to process.
79
- # @return [Hash<String, Hash>]
80
- def self.result_to_codecov_messages(result)
81
- result.files.each_with_object({}) do |file, memo|
82
- memo[shortened_filename(file)] = file.lines.each_with_object({}) do |line, lines_memo|
83
- lines_memo[line.line_number.to_s] = 'skipped' if line.skipped?
79
+ # Format SimpleCov coverage data for the Codecov.io coverage API.
80
+ #
81
+ # @param result [SimpleCov::Result] The coverage data to process.
82
+ # @return [Hash<String, Array>]
83
+ def result_to_codecov_coverage(result)
84
+ result.files.each_with_object({}) do |file, memo|
85
+ memo[shortened_filename(file)] = file_to_codecov(file)
84
86
  end
85
87
  end
86
- end
87
88
 
88
- # Format coverage data for a single file for the Codecov.io API.
89
- #
90
- # @param file [SimpleCov::SourceFile] The file to process.
91
- # @return [Array<nil, Integer>]
92
- def self.file_to_codecov(file)
93
- # Initial nil is required to offset line numbers.
94
- [nil] + file.lines.map do |line|
95
- if line.skipped?
96
- nil
97
- else
98
- line.coverage
89
+ # Format SimpleCov coverage data for the Codecov.io messages API.
90
+ #
91
+ # @param result [SimpleCov::Result] The coverage data to process.
92
+ # @return [Hash<String, Hash>]
93
+ def result_to_codecov_messages(result)
94
+ result.files.each_with_object({}) do |file, memo|
95
+ memo[shortened_filename(file)] = file.lines.each_with_object({}) do |line, lines_memo|
96
+ lines_memo[line.line_number.to_s] = 'skipped' if line.skipped?
97
+ end
99
98
  end
100
99
  end
101
- end
102
-
103
- # Get a filename relative to the project root. Based on
104
- # https://github.com/colszowka/simplecov-html, copyright Christoph Olszowka.
105
- #
106
- # @param file [SimpleCov::SourceFile] The file to use.
107
- # @return [String]
108
- def self.shortened_filename(file)
109
- file.filename.gsub(/^#{SimpleCov.root}/, '.').gsub(%r{^\./}, '')
110
- end
111
-
112
- # Convenience color methods
113
- def self.black(str)
114
- str.nil? ? '' : "\e[30m#{str}\e[0m"
115
- end
116
100
 
117
- def self.red(str)
118
- str.nil? ? '' : "\e[31m#{str}\e[0m"
119
- end
101
+ # Format coverage data for a single file for the Codecov.io API.
102
+ #
103
+ # @param file [SimpleCov::SourceFile] The file to process.
104
+ # @return [Array<nil, Integer>]
105
+ def file_to_codecov(file)
106
+ # Initial nil is required to offset line numbers.
107
+ [nil] + file.lines.map do |line|
108
+ if line.skipped?
109
+ nil
110
+ else
111
+ line.coverage
112
+ end
113
+ end
114
+ end
120
115
 
121
- def self.green(str)
122
- str.nil? ? '' : "\e[32m#{str}\e[0m"
116
+ # Get a filename relative to the project root. Based on
117
+ # https://github.com/colszowka/simplecov-html, copyright Christoph Olszowka.
118
+ #
119
+ # @param file [SimpleCov::SourceFile] The file to use.
120
+ # @return [String]
121
+ def shortened_filename(file)
122
+ file.filename.gsub(/^#{::SimpleCov.root}/, '.').gsub(%r{^\./}, '')
123
+ end
123
124
  end
124
125
  end
125
126
  end
@@ -37,7 +37,17 @@ class Codecov::Uploader
37
37
 
38
38
  display_header
39
39
  ci = detect_ci
40
- response = upload_to_codecov(ci, report)
40
+
41
+ begin
42
+ response = upload_to_codecov(ci, report)
43
+ rescue StandardError => e
44
+ puts `#{e.message}`
45
+ puts `#{e.backtrace.join("\n")}`
46
+ raise e unless ::Codecov.pass_ci_if_error
47
+
48
+ response = false
49
+ end
50
+
41
51
  if response == false
42
52
  report['result'] = { 'uploaded' => false }
43
53
  return report
@@ -180,16 +190,29 @@ class Codecov::Uploader
180
190
  params[:commit] = ENV['CIRCLE_SHA1']
181
191
  when CODEBUILD
182
192
  # https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html
193
+ # To use CodePipeline as CodeBuild source which sets no branch and slug variable:
194
+ #
195
+ # 1. Set up CodeStarSourceConnection as source action provider
196
+ # https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodestarConnectionSource.html
197
+ # 2. Add a Namespace to your source action. Example: "CodeStar".
198
+ # https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-variables.html#reference-variables-concepts-namespaces
199
+ # 3. Add these environment variables to your CodeBuild action:
200
+ # - CODESTAR_BRANCH_NAME: #{CodeStar.BranchName}
201
+ # - CODESTAR_FULL_REPOSITORY_NAME: #{CodeStar.FullRepositoryName} (optional)
202
+ # https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodeBuild.html#action-reference-CodeBuild-config
203
+ #
204
+ # PRs are not supported with CodePipeline.
183
205
  params[:service] = 'codebuild'
184
- params[:branch] = ENV['CODEBUILD_WEBHOOK_HEAD_REF'].split('/')[2]
206
+ params[:branch] = ENV['CODEBUILD_WEBHOOK_HEAD_REF']&.split('/')&.[](2) || ENV['CODESTAR_BRANCH_NAME']
185
207
  params[:build] = ENV['CODEBUILD_BUILD_ID']
186
208
  params[:commit] = ENV['CODEBUILD_RESOLVED_SOURCE_VERSION']
187
209
  params[:job] = ENV['CODEBUILD_BUILD_ID']
188
- params[:slug] = ENV['CODEBUILD_SOURCE_REPO_URL'].match(/.*github.com\/(?<slug>.*).git/)['slug']
189
- params[:pr] = if ENV['CODEBUILD_SOURCE_VERSION']
210
+ params[:slug] = ENV['CODEBUILD_SOURCE_REPO_URL']&.match(/.*github.com\/(?<slug>.*).git/)&.[]('slug') || ENV['CODESTAR_FULL_REPOSITORY_NAME']
211
+ params[:pr] = if ENV['CODEBUILD_SOURCE_VERSION'] && !(ENV['CODEBUILD_INITIATOR'] =~ /codepipeline/)
190
212
  matched = ENV['CODEBUILD_SOURCE_VERSION'].match(%r{pr/(?<pr>.*)})
191
213
  matched.nil? ? ENV['CODEBUILD_SOURCE_VERSION'] : matched['pr']
192
214
  end
215
+ params[:build_url] = ENV['CODEBUILD_BUILD_URL']
193
216
  when CODESHIP
194
217
  # https://www.codeship.io/documentation/continuous-integration/set-environment-variables/
195
218
  params[:service] = 'codeship'
@@ -521,3 +544,6 @@ class Codecov::Uploader
521
544
  str.nil? ? '' : "\e[32m#{str}\e[0m"
522
545
  end
523
546
  end
547
+
548
+ require_relative 'configuration'
549
+ Codecov.extend Codecov::Configuration
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Codecov
4
- VERSION = '0.4.0'
4
+ VERSION = '0.5.1'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codecov
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Peak
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-01-25 00:00:00.000000000 Z
12
+ date: 2021-03-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: simplecov
@@ -122,14 +122,23 @@ executables: []
122
122
  extensions: []
123
123
  extra_rdoc_files: []
124
124
  files:
125
+ - CHANGELOG.md
126
+ - LICENSE
127
+ - README.md
125
128
  - lib/codecov.rb
129
+ - lib/codecov/configuration.rb
126
130
  - lib/codecov/formatter.rb
127
131
  - lib/codecov/uploader.rb
128
132
  - lib/codecov/version.rb
129
133
  homepage: https://github.com/codecov/codecov-ruby
130
134
  licenses:
131
135
  - MIT
132
- metadata: {}
136
+ metadata:
137
+ bug_tracker_uri: https://github.com/codecov/codecov-ruby/issues
138
+ changelog_uri: https://github.com/codecov/codecov-ruby/blob/v0.5.1/CHANGELOG.md
139
+ documentation_uri: http://www.rubydoc.info/gems/codecov/0.5.1
140
+ homepage_uri: https://github.com/codecov/codecov-ruby
141
+ source_code_uri: https://github.com/codecov/codecov-ruby
133
142
  post_install_message:
134
143
  rdoc_options: []
135
144
  require_paths: