Skip to content
This repository was archived by the owner on Jan 10, 2023. It is now read-only.

Commit cd78029

Browse files
authored
Add support for Cirrus CI(#141)
* Add support for Cirrus CI * end * Fix tests * Remove unneeded deps * Update deps * Remove public from invalid directories also
1 parent 98c283b commit cd78029

File tree

7 files changed

+52
-13
lines changed

7 files changed

+52
-13
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
### `0.5.2`
2+
- #141 Add Cirrus CI support
3+
14
### `0.5.1`
25
- #138 Update pass_ci_if_error flag
36

codecov.gemspec

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ Gem::Specification.new do |s|
3333
s.add_dependency 'simplecov', '>= 0.15', '< 0.22'
3434

3535
s.add_development_dependency 'minitest', '~> 5.0'
36-
s.add_development_dependency 'minitest-ci', '~> 3.0'
3736
s.add_development_dependency 'mocha', '~> 1.0'
3837
s.add_development_dependency 'rake', '~> 13.0'
3938
s.add_development_dependency 'rubocop', '~> 1.0'

lib/codecov/formatter.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ def file_network
5959

6060
invalid_directories = [
6161
'node_modules/',
62-
'public/',
6362
'storage/',
6463
'tmp/',
6564
'vendor/'

lib/codecov/uploader.rb

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class Codecov::Uploader
1717
BITRISE = 'Bitrise CI',
1818
BUILDKITE = 'Buildkite CI',
1919
CIRCLE = 'Circle CI',
20+
CIRRUS = 'Cirrus CI',
2021
CODEBUILD = 'Codebuild CI',
2122
CODESHIP = 'Codeship CI',
2223
DRONEIO = 'Drone CI',
@@ -41,8 +42,8 @@ def self.upload(report, disable_net_blockers = true)
4142
begin
4243
response = upload_to_codecov(ci, report)
4344
rescue StandardError => e
44-
puts `#{e.message}`
45-
puts `#{e.backtrace.join("\n")}`
45+
puts e.message
46+
puts e.backtrace.join("\n")
4647
raise e unless ::Codecov.pass_ci_if_error
4748

4849
response = false
@@ -87,6 +88,8 @@ def self.detect_ci
8788
BUILDKITE
8889
elsif (ENV['CI'] == 'true') && (ENV['CIRCLECI'] == 'true')
8990
CIRCLE
91+
elsif !ENV['CIRRUS_CI'].nil?
92+
CIRRUS
9093
elsif ENV['CODEBUILD_CI'] == 'true'
9194
CODEBUILD
9295
elsif (ENV['CI'] == 'true') && (ENV['CI_NAME'] == 'codeship')
@@ -188,6 +191,16 @@ def self.build_params(ci)
188191
params[:pr] = ENV['CIRCLE_PR_NUMBER']
189192
params[:branch] = ENV['CIRCLE_BRANCH']
190193
params[:commit] = ENV['CIRCLE_SHA1']
194+
when CIRRUS
195+
# https://cirrus-ci.org/guide/writing-tasks/#environment-variables
196+
params[:branch] = ENV['CIRRUS_BRANCH']
197+
params[:build] = ENV['CIRRUS_BUILD_ID']
198+
params[:build_url] = "https://cirrus-ci.com/tasks/#{ENV['CIRRUS_TASK_ID']}"
199+
params[:commit] = ENV['CIRRUS_CHANGE_IN_REPO']
200+
params[:job] = ENV['CIRRUS_TASK_NAME']
201+
params[:pr] = ENV['CIRRUS_PR']
202+
params[:service] = 'cirrus-ci'
203+
params[:slug] = ENV['CIRRUS_REPO_FULL_NAME']
191204
when CODEBUILD
192205
# https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html
193206
# To use CodePipeline as CodeBuild source which sets no branch and slug variable:

lib/codecov/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# frozen_string_literal: true
22

33
module Codecov
4-
VERSION = '0.5.1'
4+
VERSION = '0.5.2'
55
end

test/helper.rb

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,3 @@
1414
require 'minitest/autorun'
1515
require 'mocha/minitest'
1616
require 'webmock/minitest'
17-
18-
require 'minitest/ci'
19-
Minitest::Ci.report_dir = '.' if ENV['CIRCLECI']

test/test_codecov.rb

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ class TestCodecov < Minitest::Test
66
CI = Codecov::Uploader.detect_ci
77

88
REALENV =
9-
if CI == Codecov::Uploader::CIRCLE
9+
case CI
10+
when Codecov::Uploader::CIRCLE
1011
{
1112
'CIRCLECI' => ENV['CIRCLECI'],
1213
'CIRCLE_BUILD_NUM' => ENV['CIRCLE_BUILD_NUM'],
@@ -18,7 +19,7 @@ class TestCodecov < Minitest::Test
1819
'CIRCLE_BRANCH' => ENV['CIRCLE_BRANCH'],
1920
'CIRCLE_SHA1' => ENV['CIRCLE_SHA1']
2021
}
21-
elsif CI == Codecov::Uploader::GITHUB
22+
when Codecov::Uploader::GITHUB
2223
{
2324
'GITHUB_ACTIONS' => ENV['GITHUB_ACTIONS'],
2425
'GITHUB_HEAD_REF' => ENV['GITHUB_HEAD_REF'],
@@ -27,7 +28,7 @@ class TestCodecov < Minitest::Test
2728
'GITHUB_RUN_ID' => ENV['GITHUB_RUN_ID'],
2829
'GITHUB_SHA' => ENV['GITHUB_SHA']
2930
}
30-
elsif CI == Codecov::Uploader::TRAVIS
31+
when Codecov::Uploader::TRAVIS
3132
{
3233
'TRAVIS' => ENV['TRAVIS'],
3334
'TRAVIS_BRANCH' => ENV['TRAVIS_BRANCH'],
@@ -167,6 +168,14 @@ def teardown
167168
ENV['CIRCLE_PROJECT_USERNAME'] = nil
168169
ENV['CIRCLE_SHA1'] = nil
169170
ENV['CIRCLECI'] = nil
171+
ENV['CIRRUS_CI'] = nil
172+
ENV['CIRRUS_BRANCH'] = nil
173+
ENV['CIRRUS_BUILD_ID'] = nil
174+
ENV['CIRRUS_TASK_ID'] = nil
175+
ENV['CIRRUS_CHANGE_IN_REPO'] = nil
176+
ENV['CIRRUS_TASK_NAME'] = nil
177+
ENV['CIRRUS_PR'] = nil
178+
ENV['CIRRUS_REPO_FULL_NAME'] = nil
170179
ENV['CODEBUILD_CI'] = nil
171180
ENV['CODEBUILD_BUILD_ID'] = nil
172181
ENV['CODEBUILD_BUILD_URL'] = nil
@@ -240,7 +249,7 @@ def test_git
240249
end
241250

242251
def test_enterprise
243-
stub = stub_request(:post, %r{https:\/\/example.com\/upload\/v2})
252+
stub_request(:post, %r{https://example.com/upload/v2})
244253
.to_return(
245254
status: 200,
246255
body: "{\"id\": \"12345678-1234-abcd-ef12-1234567890ab\", \"message\": \"Coverage reports upload successfully\", \"meta\": { \"status\": 200 }, \"queued\": true, \"uploaded\": true, \"url\": \"https://example.com/github/codecov/codecov-bash/commit/2f6b51562b93e72c610671644fe2a303c5c0e8e5\"}"
@@ -687,10 +696,29 @@ def test_codebuild_source_version_is_other_than_pr_number
687696
assert_equal('git-commit-hash-12345', result['params'][:pr])
688697
assert_equal('owner/repo', result['params'][:slug])
689698
assert_equal('master', result['params'][:branch])
690-
assert_equal('git-commit-hash-12345', result['params'][:pr])
691699
assert_equal('f881216b-b5c0-4eb1-8f21-b51887d1d506', result['params']['token'])
692700
end
693701

702+
def test_cirrus_ci
703+
ENV['CIRRUS_CI'] = 'true'
704+
ENV['CIRRUS_BRANCH'] = 'master'
705+
ENV['CIRRUS_BUILD_ID'] = '12345'
706+
ENV['CIRRUS_TASK_ID'] = '54321'
707+
ENV['CIRRUS_CHANGE_IN_REPO'] = 'd653b934ed59c1a785cc1cc79d08c9aaa4eba73b'
708+
ENV['CIRRUS_TASK_NAME'] = 'test'
709+
ENV['CIRRUS_PR'] = '10'
710+
ENV['CIRRUS_REPO_FULL_NAME'] = 'owner/repo'
711+
712+
result = upload
713+
714+
assert_equal('cirrus-ci', result['params'][:service])
715+
assert_equal('d653b934ed59c1a785cc1cc79d08c9aaa4eba73b', result['params'][:commit])
716+
assert_equal('12345', result['params'][:build])
717+
assert_equal('10', result['params'][:pr])
718+
assert_equal('owner/repo', result['params'][:slug])
719+
assert_equal('master', result['params'][:branch])
720+
end
721+
694722
def test_filenames_are_shortened_correctly
695723
ENV['CODECOV_TOKEN'] = 'f881216b-b5c0-4eb1-8f21-b51887d1d506'
696724

0 commit comments

Comments
 (0)