lib/code_climate/test_reporter/ci.rb
module CodeClimate
module TestReporter
class Ci
def self.service_data(env = ENV)
if env["TRAVIS"]
{
name: "travis-ci",
branch: env["TRAVIS_BRANCH"],
build_identifier: env["TRAVIS_JOB_ID"],
pull_request: env["TRAVIS_PULL_REQUEST"],
}
elsif env["CIRCLECI"]
{
name: "circleci",
build_identifier: env["CIRCLE_BUILD_NUM"],
branch: env["CIRCLE_BRANCH"],
commit_sha: env["CIRCLE_SHA1"],
}
elsif env["SEMAPHORE"]
{
name: "semaphore",
branch: env["BRANCH_NAME"],
build_identifier: env["SEMAPHORE_BUILD_NUMBER"],
}
elsif env["JENKINS_URL"]
{
name: "jenkins",
build_identifier: env["BUILD_NUMBER"],
build_url: env["BUILD_URL"],
branch: env["GIT_BRANCH"],
commit_sha: env["GIT_COMMIT"],
}
elsif env["TDDIUM"]
{
name: "tddium",
build_identifier: env["TDDIUM_SESSION_ID"],
worker_id: env["TDDIUM_TID"],
}
elsif env["WERCKER"]
{
name: "wercker",
build_identifier: env["WERCKER_BUILD_ID"],
build_url: env["WERCKER_BUILD_URL"],
branch: env["WERCKER_GIT_BRANCH"],
commit_sha: env["WERCKER_GIT_COMMIT"],
}
elsif env["APPVEYOR"]
{
name: "appveyor",
build_identifier: env["APPVEYOR_BUILD_ID"],
build_url: env["APPVEYOR_API_URL"],
branch: env["APPVEYOR_REPO_BRANCH"],
commit_sha: env["APPVEYOR_REPO_COMMIT"],
pull_request: env["APPVEYOR_PULL_REQUEST_NUMBER"],
}
elsif env["CI_NAME"] =~ /DRONE/i
{
name: "drone",
build_identifier: env["CI_BUILD_NUMBER"],
build_url: env["CI_BUILD_URL"],
branch: env["CI_BRANCH"],
commit_sha: env["CI_COMMIT"],
pull_request: env["CI_PULL_REQUEST"],
}
elsif env["CI_NAME"] =~ /codeship/i
{
name: "codeship",
build_identifier: env["CI_BUILD_ID"],
# build URL cannot be reconstructed for Codeship since env does not contain project ID
build_url: env["CI_BUILD_URL"],
branch: env["CI_BRANCH"],
commit_sha: env["CI_COMMIT_ID"],
# CI timestamp is not quite equivalent to commited at but there's no equivalent in Codeship
committed_at: env["CI_TIMESTAMP"],
}
elsif env["CI_NAME"] =~ /VEXOR/i
{
name: "vexor",
build_identifier: env["CI_BUILD_NUMBER"],
build_url: env["CI_BUILD_URL"],
branch: env["CI_BRANCH"],
commit_sha: env["CI_BUILD_SHA"],
pull_request: env["CI_PULL_REQUEST_ID"],
}
elsif env["BUILDKITE"]
{
name: "buildkite",
build_identifier: env["BUILDKITE_JOB_ID"],
build_url: env["BUILDKITE_BUILD_URL"],
branch: env["BUILDKITE_BRANCH"],
commit_sha: env["BUILDKITE_COMMIT"],
}
elsif env["GITLAB_CI"]
{
name: "gitlab-ci",
build_identifier: env["CI_BUILD_ID"],
branch: env["CI_BUILD_REF_NAME"],
commit_sha: env["CI_BUILD_REF"],
}
else
{}
end
end
end
end
end