summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-02-04 16:14:25 -0800
committerLi Haoyi <haoyi.sg@gmail.com>2018-02-04 16:38:21 -0800
commit593d9f94794e6db8040e7082ba50a24d86c4cc06 (patch)
tree061aa31787a213866964cff6d52a98295c2a0e1f
parent5871dd570403906435ad407059398c53d002fdbf (diff)
downloadmill-593d9f94794e6db8040e7082ba50a24d86c4cc06.tar.gz
mill-593d9f94794e6db8040e7082ba50a24d86c4cc06.tar.bz2
mill-593d9f94794e6db8040e7082ba50a24d86c4cc06.zip
properly embed the local module dependency graph metadata in published pom.xmls
-rwxr-xr-xbuild.sc10
-rwxr-xr-xci/test4.sh2
-rw-r--r--scalalib/src/mill/scalalib/PublishModule.scala23
3 files changed, 27 insertions, 8 deletions
diff --git a/build.sc b/build.sc
index 1e85b64f..73b98061 100755
--- a/build.sc
+++ b/build.sc
@@ -206,17 +206,21 @@ val isMasterCommit = {
(sys.env.get("TRAVIS_BRANCH") == Some("master") || sys.env("TRAVIS_TAG") != "")
}
+def gitHead = T.input{
+ sys.env.get("TRAVIS_COMMIT").getOrElse(
+ %%('git, "rev-parse", "head")(pwd).out.string.trim()
+ )
+}
def publishVersion = T.input{
val tag =
- try Option(%%('git, 'describe, "--exact-match", "--tags", 'HEAD)(pwd).out.string)
+ try Option(%%('git, 'describe, "--exact-match", "--tags", gitHead())(pwd).out.string)
catch{case e => None}
tag match{
case Some(t) => (t, t)
case None =>
val timestamp = java.time.Instant.now().toString.replaceAll(":|\\.", "-")
- val gitHash = %%('git, "rev-parse", "head")(pwd).out.string.trim()
- ("unstable", timestamp + "-" + gitHash)
+ ("unstable", timestamp + "-" + gitHead())
}
}
diff --git a/ci/test4.sh b/ci/test4.sh
index fafe603b..2a8b1497 100755
--- a/ci/test4.sh
+++ b/ci/test4.sh
@@ -12,7 +12,7 @@ git clean -xdf
sbt bin/test:assembly
# Build Mill using SBT
-~/mill-release --all \
+target/bin/mill --all \
moduledefs.publishLocal \
core.publishLocal \
scalalib.publishLocal \
diff --git a/scalalib/src/mill/scalalib/PublishModule.scala b/scalalib/src/mill/scalalib/PublishModule.scala
index 785f77ac..19fafaa3 100644
--- a/scalalib/src/mill/scalalib/PublishModule.scala
+++ b/scalalib/src/mill/scalalib/PublishModule.scala
@@ -2,6 +2,7 @@ package mill
package scalalib
import ammonite.ops._
+import mill.define.Task
import mill.eval.{PathRef, Result}
import mill.util.Loose.Agg
/**
@@ -10,14 +11,28 @@ import mill.util.Loose.Agg
trait PublishModule extends ScalaModule { outer =>
import mill.scalalib.publish._
+ override def moduleDeps = Seq.empty[PublishModule]
+
def pomSettings: T[PomSettings]
def publishVersion: T[String]
def artifactId: T[String] = T { s"${artifactName()}${artifactSuffix()}" }
-
+ def publishSelfDependency = T{
+ Artifact(pomSettings().organization, artifactId(), publishVersion()),
+ }
+ def publishUpstreamDependencies = T{ Task.sequence(moduleDeps.map(_.publishSelfDependency)) }
def pom = T {
- val dependencies =
- ivyDeps().map(Artifact.fromDep(_, scalaVersion(), Lib.scalaBinaryVersion(scalaVersion())))
- val pom = Pom(artifact(), dependencies, artifactId(), pomSettings())
+ val ivyPomDeps = ivyDeps().map(
+ Artifact.fromDep(_, scalaVersion(), Lib.scalaBinaryVersion(scalaVersion()))
+ )
+
+ val upstreamPomDeps = publishUpstreamDependencies().map(Dependency(_, Scope.Compile))
+
+ val pom = Pom(
+ artifact(),
+ ivyPomDeps ++ upstreamPomDeps,
+ artifactId(),
+ pomSettings()
+ )
val pomPath = T.ctx().dest / s"${artifactId()}-${publishVersion()}.pom"
write.over(pomPath, pom)