Packages
excoveralls
0.13.0
0.18.5
0.18.4
0.18.3
0.18.2
0.18.1
0.18.0
0.17.1
0.17.0
0.16.1
0.16.0
0.15.3
0.15.2
0.15.1
0.15.0
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.12.3
0.12.2
0.12.1
0.12.0
0.11.2
0.11.1
0.11.0
0.10.6
0.10.5
0.10.4
0.10.3
0.10.2
0.10.1
0.10.0
0.9.2
0.9.1
0.9.0
0.8.2
0.8.1
0.8.0
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.11
0.3.10
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
Coverage report tool for Elixir with coveralls.io integration.
Current section
Files
Jump to
Current section
Files
lib/excoveralls/semaphore.ex
defmodule ExCoveralls.Semaphore do
@moduledoc """
Handles semaphore-ci integration with coveralls.
"""
alias ExCoveralls.Poster
def execute(stats, options) do
json = generate_json(stats, Enum.into(options, %{}))
if options[:verbose] do
IO.puts json
end
Poster.execute(json)
end
def generate_json(stats, options \\ %{})
def generate_json(stats, options) do
Jason.encode!(%{
repo_token: get_repo_token(),
service_name: "semaphore",
service_number: get_build_num(),
service_job_id: get_build_num(),
service_pull_request: get_pull_request(),
source_files: stats,
git: generate_git_info(),
parallel: options[:parallel]
})
end
defp generate_git_info do
%{head: %{
message: get_message!(),
id: get_sha()
},
branch: get_branch()
}
end
defp get_pull_request do
case Regex.run(~r/(\d+)$/, System.get_env("SEMAPHORE_GIT_PR_NUMBER") || "") do
[_, id] -> id
_ -> nil
end
end
defp get_message! do
case System.cmd("git", ["log", "-1", "--pretty=format:%s"]) do
{message, _} -> message
_ -> "[no commit message]"
end
end
defp get_sha do
System.get_env("SEMAPHORE_GIT_SHA")
end
defp get_branch do
System.get_env("SEMAPHORE_GIT_BRANCH")
end
defp get_build_num do
System.get_env("SEMAPHORE_JOB_ID")
end
defp get_repo_token do
System.get_env("COVERALLS_REPO_TOKEN")
end
end