Skip to content

Commit 3ea8d94

Browse files
authored
Replace Gradle init scripts with a proper Gradle plugin (#565)
* Add Java 11 to tests * Don't run Gradle 6.7 tests on anything other java 8 or 11
1 parent 9ec7a06 commit 3ea8d94

File tree

8 files changed

+608
-304
lines changed

8 files changed

+608
-304
lines changed

.github/workflows/ci.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,16 @@ jobs:
1414
# NOTE(olafurpg) Windows is not enabled because it times out due to reasons I don't understand.
1515
# os: [windows-latest, ubuntu-latest]
1616
os: [ubuntu-latest]
17-
java: [8, 17]
17+
java: [8, 11, 17]
1818
steps:
1919
- uses: actions/checkout@v2
2020
- uses: actions/setup-java@v3
2121
with:
2222
distribution: "temurin"
2323
cache: "sbt"
2424
java-version: ${{ matrix.java }}
25-
- run: sbt test
25+
- name: Main project tests
26+
run: sbt test
2627

2728
docker_test:
2829
runs-on: ${{ matrix.os }}
@@ -49,7 +50,6 @@ jobs:
4950
docker run -v $PWD:/sources -w /sources sourcegraph/scip-java:latest scip-java index --cwd circe
5051
file circe/index.scip || (echo "circe SCIP index doesn't exist!"; exit 1)
5152
52-
5353
bazel:
5454
runs-on: ubuntu-latest
5555
steps:

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,3 +63,5 @@ bazel-testlogs
6363
bazel-lsif-java
6464

6565
VERSION
66+
67+
semanticdb-gradle-plugin/gradle

build.sbt

Lines changed: 67 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,19 @@ lazy val V =
1414
val coursier = "2.0.8"
1515
val bsp = "2.0.0-M13"
1616
val moped = "0.1.11"
17-
def scala213 = "2.13.10"
18-
def scala212 = "2.12.17"
19-
def scala211 = "2.11.12"
20-
def scala3 = "3.2.2"
21-
def metals = "0.11.11"
22-
def scalameta = "4.7.6"
23-
def semanticdbKotlinc = "0.3.0"
24-
def testcontainers = "0.39.3"
25-
def requests = "0.6.5"
26-
def minimalMillVersion = "0.10.0"
27-
def millScipVersion = "0.3.2"
17+
val gradle = "7.0"
18+
val scala213 = "2.13.10"
19+
val scala212 = "2.12.17"
20+
val scala211 = "2.11.12"
21+
val scala3 = "3.2.2"
22+
val metals = "0.11.11"
23+
val scalameta = "4.7.6"
24+
val semanticdbKotlinc = "0.3.0"
25+
val testcontainers = "0.39.3"
26+
val requests = "0.6.5"
27+
val minimalMillVersion = "0.10.0"
28+
val millScipVersion = "0.3.2"
29+
val kotlinGradlePlugin = "1.5.31"
2830
}
2931

3032
inThisBuild(
@@ -90,6 +92,7 @@ lazy val agent = project
9092
.settings(
9193
fatjarPackageSettings,
9294
javaOnlySettings,
95+
javaToolchainVersion := "8",
9396
moduleName := "semanticdb-agent",
9497
libraryDependencies ++=
9598
List(
@@ -104,8 +107,51 @@ lazy val agent = project
104107
"Premain-Class" -> "com.sourcegraph.semanticdb_javac.SemanticdbAgent"
105108
)
106109
)
110+
lazy val gradlePlugin = project
111+
.in(file("semanticdb-gradle-plugin"))
112+
.settings(
113+
name := "semanticdb-gradle",
114+
scalaVersion := V.scala213,
115+
buildInfoPackage := "com.sourcegraph.scip_java",
116+
publish / skip := true,
117+
javaToolchainVersion := "8",
118+
scalacOptions ++= Seq("-target:8", "-release", "8"),
119+
libraryDependencies ++=
120+
List(
121+
"dev.gradleplugins" % "gradle-api" % V.gradle % Provided,
122+
"dev.gradleplugins" % "gradle-test-kit" % V.gradle % Provided,
123+
"org.jetbrains.kotlin" % "kotlin-gradle-plugin" % V.kotlinGradlePlugin %
124+
Provided
125+
),
126+
buildInfoKeys :=
127+
Seq[BuildInfoKey](
128+
version,
129+
sbtVersion,
130+
scalaVersion,
131+
"javacModuleOptions" -> javacModuleOptions,
132+
"semanticdbScalacVersions" ->
133+
com
134+
.sourcegraph
135+
.sbtsourcegraph
136+
.Versions
137+
.cachedSemanticdbVersionsByScalaVersion,
138+
"sbtSourcegraphVersion" ->
139+
com.sourcegraph.sbtsourcegraph.BuildInfo.version,
140+
"semanticdbVersion" -> V.scalameta,
141+
"semanticdbKotlincVersion" -> V.semanticdbKotlinc,
142+
"mtagsVersion" -> V.metals,
143+
"scala211" -> V.scala211,
144+
"scala212" -> V.scala212,
145+
"scala213" -> V.scala213,
146+
"scala3" -> V.scala3,
147+
"bspVersion" -> V.bsp,
148+
"minimalMillVersion" -> V.minimalMillVersion,
149+
"millScipVersion" -> V.millScipVersion
150+
)
151+
)
152+
.enablePlugins(BuildInfoPlugin)
107153

108-
lazy val plugin = project
154+
lazy val javacPlugin = project
109155
.in(file("semanticdb-javac"))
110156
.settings(
111157
fatjarPackageSettings,
@@ -204,13 +250,14 @@ lazy val cli = project
204250
}
205251

206252
addJar(
207-
(plugin / Compile / Keys.`package`).value,
253+
(javacPlugin / Compile / Keys.`package`).value,
208254
"semanticdb-plugin.jar"
209255
)
210256
addJar(
211257
(agent / Compile / Keys.`package`).value,
212258
"semanticdb-agent.jar"
213259
)
260+
addJar((gradlePlugin / Compile / assembly).value, "gradle-plugin.jar")
214261

215262
IO.copy(outs)
216263
val props = new Properties()
@@ -333,13 +380,13 @@ lazy val minimizedSettings = List[Def.Setting[_]](
333380
lazy val minimized = project
334381
.in(file("tests/minimized/.j11"))
335382
.settings(minimizedSettings, javaOnlySettings)
336-
.dependsOn(agent, plugin)
383+
.dependsOn(agent, javacPlugin)
337384
.disablePlugins(JavaFormatterPlugin)
338385

339386
lazy val minimized8 = project
340387
.in(file("tests/minimized/.j8"))
341388
.settings(minimizedSettings, javaToolchainVersion := "8", javaOnlySettings)
342-
.dependsOn(agent, plugin)
389+
.dependsOn(agent, javacPlugin)
343390
.disablePlugins(JavaFormatterPlugin)
344391

345392
def javacModuleOptions =
@@ -364,7 +411,7 @@ lazy val minimized17 = project
364411
javaToolchainVersion := "17",
365412
javacOptions ++= javacModuleOptions
366413
)
367-
.dependsOn(agent, plugin)
414+
.dependsOn(agent, javacPlugin)
368415
.disablePlugins(JavaFormatterPlugin)
369416

370417
lazy val minimizedScala = project
@@ -397,7 +444,7 @@ lazy val unit = project
397444
),
398445
buildInfoPackage := "tests"
399446
)
400-
.dependsOn(plugin, cli)
447+
.dependsOn(javacPlugin, cli)
401448
.enablePlugins(BuildInfoPlugin)
402449

403450
lazy val buildTools = project
@@ -407,7 +454,7 @@ lazy val buildTools = project
407454
(Test / javaOptions) ++=
408455
List(
409456
s"-javaagent:${(agent / Compile / Keys.`package`).value}",
410-
s"-Dsemanticdb.pluginpath=${(plugin / Compile / Keys.`package`).value}",
457+
s"-Dsemanticdb.pluginpath=${(javacPlugin / Compile / Keys.`package`).value}",
411458
s"-Dsemanticdb.sourceroot=${(ThisBuild / baseDirectory).value}",
412459
s"-Dsemanticdb.targetroot=${(agent / Compile / target).value / "semanticdb-targetroot"}"
413460
)
@@ -541,3 +588,5 @@ dumpScipJavaVersion := {
541588

542589
IO.write((ThisBuild / baseDirectory).value / "VERSION", versionValue)
543590
}
591+
592+
ThisBuild / version := sys.env.get("CI").fold("dev")(_ => version.value)

scip-java/src/main/scala/com/sourcegraph/scip_java/Embedded.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ object Embedded {
1414
def semanticdbJar(tmpDir: Path): Path =
1515
copyFile(tmpDir, "semanticdb-plugin.jar")
1616

17+
def gradlePluginJar(tmpDir: Path): Path =
18+
copyFile(tmpDir, "gradle-plugin.jar")
19+
1720
def agentJar(tmpDir: Path): Path = copyFile(tmpDir, "semanticdb-agent.jar")
1821
def coursier(tmpDir: Path): Path = {
1922
val result = copyFile(tmpDir, "scip-java/coursier")

0 commit comments

Comments
 (0)