diff --git a/lib/codecov.rb b/lib/codecov.rb index cb74e43..792b38e 100644 --- a/lib/codecov.rb +++ b/lib/codecov.rb @@ -168,7 +168,10 @@ def build_params(ci) params[:commit] = ENV['CODEBUILD_RESOLVED_SOURCE_VERSION'] params[:job] = ENV['CODEBUILD_BUILD_ID'] params[:slug] = ENV['CODEBUILD_SOURCE_REPO_URL'].match(/.*github.com\/(?.*).git/)['slug'] - params[:pr] = ENV['CODEBUILD_SOURCE_VERSION'].match(/pr\/(?.*)/)['pr'] if ENV['CODEBUILD_SOURCE_VERSION'] + params[:pr] = if ENV['CODEBUILD_SOURCE_VERSION'] + matched = ENV['CODEBUILD_SOURCE_VERSION'].match(%r{pr/(?.*)}) + matched.nil? ? ENV['CODEBUILD_SOURCE_VERSION'] : matched['pr'] + end when CODESHIP # https://www.codeship.io/documentation/continuous-integration/set-environment-variables/ params[:service] = 'codeship' diff --git a/test/test_codecov.rb b/test/test_codecov.rb index fadbb02..08ffa62 100644 --- a/test/test_codecov.rb +++ b/test/test_codecov.rb @@ -639,6 +639,27 @@ def test_codebuild assert_equal('f881216b-b5c0-4eb1-8f21-b51887d1d506', result['params']['token']) end + def test_codebuild_source_version_is_other_than_pr_number + ENV['CODEBUILD_CI'] = 'true' + ENV['CODEBUILD_BUILD_ID'] = 'codebuild-project:458dq3q8-7354-4513-8702-ea7b9c81efb3' + ENV['CODEBUILD_RESOLVED_SOURCE_VERSION'] = 'd653b934ed59c1a785cc1cc79d08c9aaa4eba73b' + ENV['CODEBUILD_WEBHOOK_HEAD_REF'] = 'refs/heads/master' + ENV['CODEBUILD_SOURCE_VERSION'] = 'git-commit-hash-12345' + ENV['CODEBUILD_SOURCE_REPO_URL'] = 'https://github.com/owner/repo.git' + ENV['CODECOV_TOKEN'] = 'f881216b-b5c0-4eb1-8f21-b51887d1d506' + + result = upload + + assert_equal('codebuild', result['params'][:service]) + assert_equal('d653b934ed59c1a785cc1cc79d08c9aaa4eba73b', result['params'][:commit]) + assert_equal('codebuild-project:458dq3q8-7354-4513-8702-ea7b9c81efb3', result['params'][:build]) + assert_equal('git-commit-hash-12345', result['params'][:pr]) + assert_equal('owner/repo', result['params'][:slug]) + assert_equal('master', result['params'][:branch]) + assert_equal('git-commit-hash-12345', result['params'][:pr]) + assert_equal('f881216b-b5c0-4eb1-8f21-b51887d1d506', result['params']['token']) + end + def test_filenames_are_shortened_correctly ENV['CODECOV_TOKEN'] = 'f881216b-b5c0-4eb1-8f21-b51887d1d506'