-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.mill
More file actions
155 lines (112 loc) · 4.28 KB
/
build.mill
File metadata and controls
155 lines (112 loc) · 4.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
//| mill-version: 1.1.0-RC2
//| mill-jvm-version: system
//| mvnDeps: ["com.lihaoyi::mill-contrib-buildinfo:$MILL_VERSION"]
package build
// @formatter:off
import mill.*, javalib.*, javalib.publish, scalalib.*, scalalib.publish.*
import mill.api.BuildCtx
import mill.api.Task.Simple
import mill.contrib.buildinfo.BuildInfo
import mill.util.BuildInfo.millBinPlatform
import mill.util.BuildInfo.millVersion
// @formatter:on
val scala212 = "2.12.20"
val scala213 = "2.13.16"
val scala3 = "3.7.2"
val supportedScalaVersions = Seq(scala212, scala213, scala3)
trait CorePublishModule extends SonatypeCentralPublishModule {
def readVersionFromRepo = Task.Input {
os.read(BuildCtx.workspaceRoot / "version.txt").trim()
}
override def publishVersion = readVersionFromRepo
override def pomSettings = PomSettings(
description = artifactName(),
organization = "me.seroperson",
url = "https://github.com/seroperson/jvm-live-reload",
licenses = Seq(License.MIT),
versionControl = VersionControl.github("seroperson", "jvm-live-reload"),
developers =
Seq(Developer("seroperson", "Daniil Sivak", "https://seroperson.me/"))
)
}
object `build-link` extends JavaModule with CorePublishModule {
override def artifactName = "jvm-live-reload-build-link"
override def sources = Task.Sources(
BuildCtx.workspaceRoot / "core" / "build-link" / "src" / "main" / "java"
)
}
object `runner-module` extends JavaModule with CorePublishModule {
override def artifactName = "jvm-live-reload-runner"
override def moduleDeps = Seq(`build-link`)
override def sources = Task.Sources(
BuildCtx.workspaceRoot / "core" / "runner" / "src" / "main" / "java"
)
override def mvnDeps = Seq(
mvn"org.playframework:play-file-watch:3.0.0-M4",
mvn"org.jline:jline:3.30.6"
)
}
object webserver extends JavaModule with CorePublishModule {
override def artifactName = "jvm-live-reload-webserver"
override def moduleDeps = Seq(`build-link`)
override def sources = Task.Sources(
BuildCtx.workspaceRoot / "core" / "webserver" / "src" / "main" / "java"
)
override def mvnDeps = Seq(
mvn"io.undertow:undertow-core:2.3.20.Final"
)
}
object `hook-scala` extends Cross[HookScalaModule](supportedScalaVersions)
trait HookScalaModule
extends ScalaModule
with CorePublishModule
with Cross.Module[String] {
override def scalaVersion = crossValue
override def artifactName = "jvm-live-reload-hook-scala"
override def moduleDeps = Seq(`build-link`)
override def sources = Task.Sources(
BuildCtx.workspaceRoot / "core" / "hook-scala" / "src" / "main" / "scala"
)
override def compileMvnDeps = Seq(
mvn"dev.zio::zio:2.1.24",
mvn"org.typelevel::cats-effect:3.6.3"
)
}
object `mill-live-reload` extends ScalaModule, CorePublishModule, BuildInfo {
override def scalaVersion = "3.7.3"
override def platformSuffix = s"_mill$millBinPlatform"
override def moduleDir = BuildCtx.workspaceRoot / "mill"
override def moduleDeps = Seq(`runner-module`, webserver)
override def mvnDeps = Seq(
mvn"com.lihaoyi::mill-libs:$millVersion",
mvn"org.jline:jline:3.30.6"
)
object integration extends ScalaTests, TestModule.ScalaTest, BuildInfo {
override def scalaTestVersion = "3.2.19"
override def mvnDeps = Seq(
mvn"com.lihaoyi::mill-testkit:$millVersion",
mvn"com.squareup.okhttp3:okhttp-jvm:5.2.1"
)
override def resources: T[Seq[PathRef]] = Task {
super[ScalaTests].resources() ++ Seq(buildInfoResources())
}
override def buildInfoPackageName = "me.seroperson.reload.live.mill.test"
override def buildInfoMembers = Seq(
BuildInfo.Value(
"resourceDir",
super[ScalaTests].resources().iterator.map(_.path).mkString(";")
),
BuildInfo.Value("exePath", millExecutable.assembly().path.toString),
BuildInfo.Value("version", readVersionFromRepo())
)
// Create a Mill executable configured for testing our plugin
object millExecutable extends JavaModule {
def mvnDeps = Seq(mvn"com.lihaoyi:mill-runner-launcher_3:$millVersion")
def mainClass = Some("mill.launcher.MillLauncherMain")
}
}
override def buildInfoPackageName = "me.seroperson.reload.live.mill"
override def buildInfoMembers = Seq(
BuildInfo.Value("version", readVersionFromRepo())
)
}