-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathbuild.mill
More file actions
80 lines (63 loc) · 2.51 KB
/
Copy pathbuild.mill
File metadata and controls
80 lines (63 loc) · 2.51 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
import mill.*
import mill.scalalib.*
import mill.scalalib.publish.*
import mill.util.VcsVersion
import mill.util.BuildInfo.{millVersion, millBinPlatform}
object Versions {
lazy val scala = "3.7.0"
lazy val commonCompress = "1.27.1"
lazy val zstdJni = "1.5.7-3"
lazy val xz = "1.10"
}
object `mill-universal-packager` extends ScalaModule with SonatypeCentralPublishModule {
def isTesting: T[Boolean] = Task.Input {
Task.env.get("MILL_TEST_MODE").exists(_.toBoolean)
}
override def publishVersion = Task {
if (isTesting()) {
"test"
} else {
VcsVersion.vcsState().format()
}
}
override def scalaVersion = Versions.scala
override def versionScheme: T[Option[VersionScheme]] = Task(Option(VersionScheme.EarlySemVer))
override def pomSettings = PomSettings(
description = "Universal packaging for Mill",
organization = "io.github.hoangmaihuy",
url = "https://github.com/hoangmaihuy/mill-universal-packager",
licenses = Seq(License.`Apache-2.0`),
versionControl = VersionControl.github(owner = "hoangmaihuy", repo = "mill-universal-packager"),
developers = Seq(Developer("hoangmaihuy", "Hoang Mai", "https://github.com/hoangmaihuy"))
)
override def artifactName = "mill-universal-packager"
override def platformSuffix = s"_mill$millBinPlatform"
override def scalacOptions = Seq("-Wunused:all", "-deprecation")
override def mvnDeps = super.mvnDeps() ++ Seq(
mvn"com.lihaoyi::mill-libs:$millVersion",
mvn"org.apache.commons:commons-compress:${Versions.commonCompress}",
mvn"com.github.luben:zstd-jni:${Versions.zstdJni}",
mvn"org.tukaani:xz:${Versions.xz}"
)
object test extends ScalaTests with TestModule.Utest {
def mvnDeps = Seq(mvn"com.lihaoyi::mill-testkit:$millVersion")
def forkEnv = Task {
val p = Task.dest / "mill/local-test-overrides" / s"${`mill-universal-packager`.artifactId()}"
os.write(
p,
`mill-universal-packager`.localClasspath().map(_.path).mkString("\n"),
createFolders = true
)
Map(
"MILL_EXECUTABLE_PATH" -> millExecutable.assembly().path.toString,
"MILL_LOCAL_TEST_OVERRIDE_CLASSPATH" ->
(sys.env.get("MILL_LOCAL_TEST_OVERRIDE_CLASSPATH") ++ Seq(Task.dest)).mkString(";")
)
}
// 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")
}
}
}