@@ -17,14 +17,18 @@ import de.tobiasroeser.mill.vcs.version.VcsVersion
1717import io .kipp .mill .ci .release .CiReleaseModule
1818import io .kipp .mill .ci .release .SonatypeHost
1919
20- val millVersion = " 0.10.12"
20+ val millVersions = Seq (" 0.10.12" , " 0.11.0-M8" )
21+ val millBinaryVersions = millVersions.map(scalaNativeBinaryVersion)
2122val scala213 = " 2.13.8"
2223val artifactBase = " mill-github-dependency-graph"
2324
2425def millBinaryVersion (millVersion : String ) = scalaNativeBinaryVersion(
2526 millVersion
2627)
2728
29+ def millVersion (binaryVersion : String ) =
30+ millVersions.find(v => millBinaryVersion(v) == binaryVersion).get
31+
2832trait Common
2933 extends ScalaModule
3034 with CiReleaseModule
@@ -57,14 +61,23 @@ object domain extends Common {
5761 override def artifactName = " github-dependency-graph-domain"
5862}
5963
60- object plugin extends Common with BuildInfo {
64+ object plugin extends Cross [Plugin ](millBinaryVersions : _* )
65+ class Plugin (millBinaryVersion : String ) extends Common with BuildInfo {
66+
67+ override def millSourcePath = super .millSourcePath / os.up
68+
69+ override def sources = T .sources {
70+ super .sources() ++ Seq (
71+ millSourcePath / s " src-mill ${millVersion(millBinaryVersion).split('.' ).take(2 ).mkString(" ." )}"
72+ ).map(PathRef (_))
73+ }
6174
6275 override def artifactName =
63- s " ${artifactBase}_mill ${millBinaryVersion(millVersion) }"
76+ s " ${artifactBase}_mill ${millBinaryVersion}"
6477
6578 override def moduleDeps = Seq (domain)
6679 override def compileIvyDeps = super .compileIvyDeps() ++ Agg (
67- ivy " com.lihaoyi::mill-scalalib: $millVersion"
80+ ivy " com.lihaoyi::mill-scalalib: ${ millVersion(millBinaryVersion)} "
6881 )
6982
7083 override def ivyDeps = super .ivyDeps() ++ Agg (
@@ -84,11 +97,14 @@ object plugin extends Common with BuildInfo {
8497 )
8598}
8699
87- object itest extends MillIntegrationTestModule {
100+ object itest extends Cross [ItestCross ](millVersions : _* )
101+ class ItestCross (millVersion : String ) extends MillIntegrationTestModule {
102+
103+ override def millSourcePath = super .millSourcePath / os.up
88104
89105 def millTestVersion = millVersion
90106
91- def pluginsUnderTest = Seq (plugin)
107+ def pluginsUnderTest = Seq (plugin(millBinaryVersion(millVersion)) )
92108
93109 def testBase = millSourcePath / " src"
94110
0 commit comments