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

Commit

Permalink
Add support for AWS CodeBuild as CI provider (#56)
Browse files Browse the repository at this point in the history
* Add support for AWS CodeBuild as CI provider

* Remove merge

* Oops

Co-authored-by: Thomas Hu <tomhu1096@gmail.com>
  • Loading branch information
rasarora and thomasrockhu authored Aug 24, 2020
1 parent 9035124 commit 247d738
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 17 deletions.
35 changes: 18 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,23 +39,24 @@ Find you repo token on your repo page at [codecov.io](https://codecov.io). Repo
## Supported CIs
| CI/CD |
| ----- |
| [Appveyor CI](https://www.appveyor.com/) |
| [Azure Pipelines](https://azure.microsoft.com/en-us/services/devops/pipelines/) |
| [Bitbucket Pipelines](https://bitbucket.org/product/features/pipelines) |
| [Bitrise CI](https://www.bitrise.io/) |
| [Buildkite CI](https://buildkite.com/) |
| [Circle CI](https://circleci.com/) |
| [Codeship CI](https://codeship.com/) |
| [Drone CI](https://drone.io/) |
| [GitLab CI](https://docs.gitlab.com/ee/ci/) |
| [Heroku CI](https://www.heroku.com/continuous-integration) |
| [Jenkins CI](https://www.jenkins.io/) |
| [Semaphore CI](https://semaphoreci.com/) |
| [Shippable](https://www.shippable.com/) |
| [Solano CI](https://xebialabs.com/technology/solano-ci/) |
| [TeamCity CI](https://www.jetbrains.com/teamcity/) |
| [Travis CI](https://travis-ci.org/) |
| [Wercker CI](https://devcenter.wercker.com/) |
| [Appveyor CI](https://www.appveyor.com/) |
| [Azure Pipelines](https://azure.microsoft.com/en-us/services/devops/pipelines/) |
| [Bitbucket Pipelines](https://bitbucket.org/product/features/pipelines) |
| [Bitrise CI](https://www.bitrise.io/) |
| [Buildkite CI](https://buildkite.com/) |
| [Codebuild CI](https://aws.amazon.com/codebuild/) |
| [Circle CI](https://circleci.com/) |
| [Codeship CI](https://codeship.com/) |
| [Drone CI](https://drone.io/) |
| [GitLab CI](https://docs.gitlab.com/ee/ci/) |
| [Heroku CI](https://www.heroku.com/continuous-integration) |
| [Jenkins CI](https://www.jenkins.io/) |
| [Semaphore CI](https://semaphoreci.com/) |
| [Shippable](https://www.shippable.com/) |
| [Solano CI](https://xebialabs.com/technology/solano-ci/) |
| [TeamCity CI](https://www.jetbrains.com/teamcity/) |
| [Travis CI](https://travis-ci.org/) |
| [Wercker CI](https://devcenter.wercker.com/) |

## Advanced Usage

Expand Down
12 changes: 12 additions & 0 deletions lib/codecov.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ class SimpleCov::Formatter::Codecov
BITRISE = 'Bitrise CI',
BUILDKITE = 'Buildkite CI',
CIRCLE = 'Circle CI',
CODEBUILD = 'Codebuild CI',
CODESHIP = 'Codeship CI',
DRONEIO = 'Drone CI',
GITHUB = 'GitHub Actions',
Expand Down Expand Up @@ -58,6 +59,8 @@ def detect_ci
BUILDKITE
elsif (ENV['CI'] == 'true') && (ENV['CIRCLECI'] == 'true')
CIRCLE
elsif ENV['CODEBUILD_CI'] == 'true'
CODEBUILD
elsif (ENV['CI'] == 'true') && (ENV['CI_NAME'] == 'codeship')
CODESHIP
elsif ((ENV['CI'] == 'true') || (ENV['CI'] == 'drone')) && (ENV['DRONE'] == 'true')
Expand Down Expand Up @@ -157,6 +160,15 @@ def build_params(ci)
params[:pr] = ENV['CIRCLE_PR_NUMBER']
params[:branch] = ENV['CIRCLE_BRANCH']
params[:commit] = ENV['CIRCLE_SHA1']
when CODEBUILD
# https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html
params[:service] = 'codebuild'
params[:branch] = ENV['CODEBUILD_WEBHOOK_HEAD_REF'].split('/')[2]
params[:build] = ENV['CODEBUILD_BUILD_ID']
params[:commit] = ENV['CODEBUILD_RESOLVED_SOURCE_VERSION']
params[:job] = ENV['CODEBUILD_BUILD_ID']
params[:slug] = ENV['CODEBUILD_SOURCE_REPO_URL'].match(/.*github.com\/(?<slug>.*).git/)['slug']
params[:pr] = ENV['CODEBUILD_SOURCE_VERSION'].match(/pr\/(?<pr>.*)/)['pr'] if ENV['CODEBUILD_SOURCE_VERSION']
when CODESHIP
# https://www.codeship.io/documentation/continuous-integration/set-environment-variables/
params[:service] = 'codeship'
Expand Down
27 changes: 27 additions & 0 deletions test/test_codecov.rb
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,12 @@ def teardown
ENV['CIRCLE_PROJECT_USERNAME'] = nil
ENV['CIRCLE_SHA1'] = nil
ENV['CIRCLECI'] = nil
ENV['CODEBUILD_CI'] = nil
ENV['CODEBUILD_BUILD_ID'] = nil
ENV['CODEBUILD_RESOLVED_SOURCE_VERSION'] = nil
ENV['CODEBUILD_WEBHOOK_HEAD_REF'] = nil
ENV['CODEBUILD_SOURCE_VERSION'] = nil
ENV['CODEBUILD_SOURCE_REPO_URL'] = nil
ENV['CODECOV_ENV'] = nil
ENV['CODECOV_SLUG'] = nil
ENV['CODECOV_TOKEN'] = nil
Expand Down Expand Up @@ -612,6 +618,27 @@ def test_bitbucket
assert_equal('f881216b-b5c0-4eb1-8f21-b51887d1d506', result['params']['token'])
end

def test_codebuild
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'] = 'pr/123'
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("codebuild-project:458dq3q8-7354-4513-8702-ea7b9c81efb3", result['params'][:job])
assert_equal("owner/repo", result['params'][:slug])
assert_equal("master", result['params'][:branch])
assert_equal("123", 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'

Expand Down

0 comments on commit 247d738

Please sign in to comment.