Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 29 additions & 9 deletions build.sc → build.mill
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
//| mill-version: 1.1.0

package build

import mill._
import scalalib._
import scalafmt._
import publish._
import $file.common

import $ivy.`de.tototec::de.tobiasroeser.mill.vcs.version::0.4.0`
import de.tobiasroeser.mill.vcs.version.VcsVersion

object v {
val scala = "2.13.10"
val utest = ivy"com.lihaoyi::utest:0.8.1"
val utest = mvn"com.lihaoyi::utest:0.8.1"
}

object cde extends CDE

trait CDE
extends common.CDEModule
extends build.CDEModule
with ScalafmtModule
with CDEPublishModule {
override def scalaVersion = v.scala
Expand All @@ -24,20 +24,40 @@ trait CDE
object cdetest extends CDETest

trait CDETest
extends common.CDETestModule
extends build.CDETestModule
with ScalafmtModule {

override def scalaVersion = v.scala

override def millSourcePath = cde.millSourcePath / "tests"
override def moduleDir = cde.moduleDir / "tests"

def cdeModule = cde

def utestIvy = v.utest
}

trait CDEPublishModule extends PublishModule {
def publishVersion = de.tobiasroeser.mill.vcs.version.VcsVersion.vcsState().format()
def publishVersion = Task.Input {
val describeVersion = {
val proc = os.proc("git", "describe", "--tags", "--abbrev=0").call(check = false)
Option.when(proc.exitCode == 0)(proc.out.text().trim).filter(_.nonEmpty)
}

val latestTagVersion =
os.proc("git", "tag", "--list", "--sort=version:refname")
.call()
.out
.text()
.linesIterator
.map(_.trim)
.filter(_.nonEmpty)
.toSeq
.lastOption

describeVersion
.orElse(latestTagVersion)
.getOrElse(throw new Exception("No git tags found; cannot infer publishVersion."))
}

def pomSettings = PomSettings(
description = artifactName(),
Expand Down
10 changes: 4 additions & 6 deletions common.sc → common.mill
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
package build

import mill._
import scalalib._

Expand All @@ -15,11 +17,7 @@ trait CDETestModule

override def moduleDeps = super.moduleDeps ++ Some(cdeModule)

override def ivyDeps = T(
super.ivyDeps() ++ Agg(
utestIvy
)
)
override def mvnDeps = super.mvnDeps() ++ Seq(utestIvy)

override def defaultCommandName() = "test"
override def defaultTask() = "test"
}