Skip to content

Commit

Permalink
Analyze assembly error - Reproduction of #528 and #2650
Browse files Browse the repository at this point in the history
Reprodcution of issues
* #528
* #2650
  • Loading branch information
lefou committed May 3, 2024
1 parent 1ac59a6 commit e98c4da
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 0 deletions.
21 changes: 21 additions & 0 deletions integration/feature/assembly/repo/build.sc
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import mill._, scalalib._

trait Setup extends ScalaModule {
def scalaVersion = "2.13.11"
def ivyDeps = Agg(
ivy"com.lihaoyi::scalatags:0.8.2",
ivy"com.lihaoyi::mainargs:0.4.0",
ivy"org.apache.avro:avro:1.11.1",
ivy"dev.zio::zio:2.0.15",
ivy"org.typelevel::cats-core:2.9.0",
ivy"org.apache.spark::spark-core:3.4.0",
ivy"dev.zio::zio-metrics-connectors:2.0.8",
ivy"dev.zio::zio-http:3.0.0-RC2"
)
}

object foo extends Setup {
override def prependShellScript: T[String] = ""
}

object bar extends Setup
17 changes: 17 additions & 0 deletions integration/feature/assembly/repo/foo/src/Main.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package ultra

import scalatags.Text.all._
import mainargs.{main, ParserForMethods}

object Main {
def generateHtml(text: String) = {
h1(text).toString
}

@main
def main(text: String) = {
println(generateHtml(text))
}

def main(args: Array[String]): Unit = ParserForMethods(this).runOrExit(args)
}
41 changes: 41 additions & 0 deletions integration/feature/assembly/test/src/AssemblyTests.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package mill.integration.local

import mill.integration.IntegrationTestSuite
import mill.util.Jvm
import utest._

// Ensure the assembly is runnable, even if we have assembled lots of dependencies into it
// Reproduction of issues:
// - https:/com-lihaoyi/mill/issues/528
// - https:/com-lihaoyi/mill/issues/2650

object AssemblyTests extends IntegrationTestSuite {
def tests: Tests = Tests {
test("Assembly") {
test("without-prependShellScript") {
val workspacePath = initWorkspace()
assert(eval("foo.assembly"))
val assemblyFile = workspacePath / "out" / "foo" / "assembly.dest" / "out.jar"
assert(os.exists(assemblyFile))
println(s"File size: ${os.stat(assemblyFile).size}")
Jvm.runSubprocess(
commandArgs = Seq(Jvm.javaExe, "-jar", assemblyFile.toString(), "--text", "tutu"),
envArgs = Map.empty[String, String],
workingDir = workspacePath
)
}
test("with-prependShellScript") {
val workspacePath = initWorkspace()
assert(eval("bar.assembly"))
val assemblyFile = workspacePath / "out" / "bar" / "assembly.dest" / "out.jar"
assert(os.exists(assemblyFile))
println(s"File size: ${os.stat(assemblyFile).size}")
Jvm.runSubprocess(
commandArgs = Seq(Jvm.javaExe, "-jar", assemblyFile.toString(), "--text", "tutu"),
envArgs = Map.empty[String, String],
workingDir = workspacePath
)
}
}
}
}

0 comments on commit e98c4da

Please sign in to comment.