Skip to content

Commit dc3ded0

Browse files
committed
Add more coveralls settings
1 parent d6f1c81 commit dc3ded0

File tree

4 files changed

+52
-12
lines changed

4 files changed

+52
-12
lines changed

build.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name := "sbt-jacoco"
22
organization := "com.github.sbt"
33

4-
version in ThisBuild := "3.1.0-M1"
4+
version in ThisBuild := "3.1.0-M2"
55

66
sbtPlugin := true
77
crossSbtVersions := Seq("0.13.16", "1.0.2")

src/main/scala/com/github/sbt/jacoco/coveralls/CoverallsReportFormat.scala

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,27 @@ import com.github.sbt.jacoco.report.formats.JacocoReportFormat
66
import org.jacoco.report.IReportVisitor
77
import sbt._
88

9-
class CoverallsReportFormat(sourceDirs: Seq[File], projectRootDir: File, jobId: String, repoToken: Option[String])
9+
class CoverallsReportFormat(
10+
sourceDirs: Seq[File],
11+
projectRootDir: File,
12+
serviceName: String,
13+
jobId: Option[String],
14+
buildNumber: Option[String],
15+
pullRequest: Option[String],
16+
repoToken: Option[String])
1017
extends JacocoReportFormat {
1118

1219
override def createVisitor(directory: File, encoding: String): IReportVisitor = {
1320
IO.createDirectory(directory)
1421

15-
new CoverallsReportVisitor(directory / "coveralls.json", sourceDirs, projectRootDir, jobId, repoToken)
22+
new CoverallsReportVisitor(
23+
directory / "coveralls.json",
24+
sourceDirs,
25+
projectRootDir,
26+
serviceName,
27+
jobId,
28+
buildNumber,
29+
pullRequest,
30+
repoToken)
1631
}
1732
}

src/main/scala/com/github/sbt/jacoco/coveralls/CoverallsReportVisitor.scala

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@ class CoverallsReportVisitor(
1616
output: File,
1717
sourceDirs: Seq[File],
1818
projectRootDir: File,
19-
jobId: String,
19+
serviceName: String,
20+
jobId: Option[String],
21+
buildNumber: Option[String],
22+
pullRequest: Option[String],
2023
repoToken: Option[String])
2124
extends IReportVisitor
2225
with IReportGroupVisitor {
@@ -32,8 +35,16 @@ class CoverallsReportVisitor(
3235
json.writeStringField("repo_token", token)
3336
}
3437

35-
json.writeStringField("service_job_id", jobId)
36-
json.writeStringField("service_name", "travis-ci")
38+
json.writeStringField("service_name", serviceName)
39+
jobId foreach { id =>
40+
json.writeStringField("service_job_id", id)
41+
}
42+
pullRequest foreach { pr =>
43+
json.writeStringField("service_pull_request", pr)
44+
}
45+
buildNumber foreach { build =>
46+
json.writeStringField("service_number", build)
47+
}
3748

3849
json.writeArrayFieldStart("source_files")
3950

src/main/scala/com/github/sbt/jacoco/coveralls/JacocoCoverallsPlugin.scala

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,15 @@ object JacocoCoverallsPlugin extends BaseJacocoPlugin {
1414
override protected def srcConfig = Test
1515

1616
object autoImport {
17-
val jacocoCoveralls: TaskKey[Unit] = taskKey("Upload JaCoCo reports to Coveralls")
17+
val jacocoCoveralls: TaskKey[Unit] = taskKey("Generate and upload JaCoCo reports to Coveralls")
18+
val jacocoCoverallsGenerateReport: TaskKey[Unit] = taskKey("Generate Coveralls report JSON")
1819

19-
val jacocoCoverallsJobId: SettingKey[String] = settingKey("todo")
20-
val jacocoCoverallsGenerateReport: TaskKey[Unit] = taskKey("TODO")
20+
val jacocoCoverallsServiceName: SettingKey[String] = settingKey("CI service name")
21+
val jacocoCoverallsBuildNumber: SettingKey[Option[String]] = settingKey("Build number to send to Coveralls")
22+
val jacocoCoverallsJobId: SettingKey[Option[String]] = settingKey("Build job ID to send to Coveralls")
23+
val jacocoCoverallsPullRequest: SettingKey[Option[String]] = settingKey("Pull request number to send to Coveralls")
2124
val jacocoCoverallsOutput: SettingKey[File] = settingKey("File to store Coveralls coverage")
22-
23-
val jacocoCoverallsRepoToken: SettingKey[Option[String]] = settingKey("todo")
25+
val jacocoCoverallsRepoToken: SettingKey[Option[String]] = settingKey("Coveralls repo secret key")
2426
}
2527

2628
import autoImport._ // scalastyle:ignore import.grouping
@@ -35,7 +37,10 @@ object JacocoCoverallsPlugin extends BaseJacocoPlugin {
3537
new CoverallsReportFormat(
3638
coveredSources.value,
3739
baseDirectory.value,
40+
jacocoCoverallsServiceName.value,
3841
jacocoCoverallsJobId.value,
42+
jacocoCoverallsBuildNumber.value,
43+
jacocoCoverallsPullRequest.value,
3944
jacocoCoverallsRepoToken.value)
4045

4146
ReportUtils.generateReport(
@@ -52,7 +57,16 @@ object JacocoCoverallsPlugin extends BaseJacocoPlugin {
5257
jacocoCoveralls := (jacocoCoveralls dependsOn jacocoCoverallsGenerateReport).value,
5358
// TODO fail if no job id
5459
// TODO manual job id
55-
jacocoCoverallsJobId := sys.env.getOrElse("TRAVIS_JOB_ID", "unknown"),
60+
jacocoCoverallsServiceName := "travis-ci",
61+
jacocoCoverallsJobId := sys.env.get("TRAVIS_JOB_ID"),
62+
jacocoCoverallsBuildNumber := sys.env.get("TRAVIS_JOB_NUMBER"),
63+
jacocoCoverallsPullRequest := {
64+
sys.env.get("TRAVIS_PULL_REQUEST") match {
65+
case Some("false") => None
66+
case Some(pr) => Some(pr)
67+
case _ => None
68+
}
69+
},
5670
jacocoCoverallsRepoToken := None
5771
)
5872
}

0 commit comments

Comments
 (0)