Packages
excoveralls
0.18.2
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/gitlab.ex
defmodule ExCoveralls.Gitlab do
@moduledoc """
Handles gitlab-ci integration with coveralls.
"""
alias ExCoveralls.Poster
alias ExCoveralls.Stats
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: "gitlab-ci",
service_number: get_number(),
service_job_id: get_job_id(),
service_pull_request: get_pull_request(),
source_files: Stats.serialize(stats),
git: generate_git_info(),
parallel: options[:parallel],
flag_name: options[:flagname]
})
end
defp generate_git_info do
%{
head: %{
committer_name: get_committer(),
message: get_message(),
id: get_sha()
},
branch: get_branch()
}
end
def get_pull_request() do
System.get_env("CI_MERGE_REQUEST_ID") || System.get_env("CI_EXTERNAL_PULL_REQUEST_IID")
end
defp get_message do
System.get_env("CI_COMMIT_TITLE") || "[no commit message]"
end
defp get_committer do
case System.cmd("git", ["log", "-1", "--format=%an"]) do
{committer, _} -> String.trim(committer)
_ -> "[no committer name]"
end
end
defp get_sha do
System.get_env("CI_COMMIT_SHA")
end
defp get_branch do
System.get_env("CI_COMMIT_BRANCH")
end
defp get_job_id do
"#{System.get_env("CI_JOB_ID")}-#{System.get_env("CI_NODE_INDEX")}"
end
defp get_number do
System.get_env("CI_PIPELINE_ID")
end
defp get_repo_token do
System.get_env("COVERALLS_REPO_TOKEN")
end
end