@@ -82,18 +82,20 @@ object PublishModuleTests extends TestSuite {
8282 lazy val millDiscover = Discover [this .type ]
8383 }
8484
85- trait TestPublishModule extends PublishModule {
86- def publishVersion = " 0.1.0-SNAPSHOT"
87- def pomSettings = PomSettings (
88- organization = " com.lihaoyi.pubmodtests" ,
89- description = " test thing" ,
90- url = " https://github.com/com-lihaoyi/mill" ,
91- licenses = Seq (License .Common .Apache2 ),
92- versionControl = VersionControl .github(" com-lihaoyi" , " mill" ),
93- developers = Nil
94- )
95- }
9685 object compileAndRuntimeStuff extends TestBaseModule {
86+ def organization = " com.lihaoyi.pubmodtests"
87+ def version = " 0.1.0-SNAPSHOT"
88+ trait TestPublishModule extends PublishModule {
89+ def publishVersion = version
90+ def pomSettings = PomSettings (
91+ organization = organization,
92+ description = " test thing" ,
93+ url = " https://github.com/com-lihaoyi/mill" ,
94+ licenses = Seq (License .Common .Apache2 ),
95+ versionControl = VersionControl .github(" com-lihaoyi" , " mill" ),
96+ developers = Nil
97+ )
98+ }
9799 object main extends JavaModule with TestPublishModule {
98100 def ivyDeps = Seq (
99101 ivy " org.slf4j:slf4j-api:2.0.15 "
@@ -343,6 +345,148 @@ object PublishModuleTests extends TestSuite {
343345 runtimeClassPathCheck(ivy2RuntimeTransitiveRunCp)
344346 runtimeClassPathCheck(m2RuntimeTransitiveRunCp)
345347 }
348+
349+ test(" docSourcesArgs" ) - UnitTester (compileAndRuntimeStuff, null ).scoped { eval =>
350+ val ivy2Repo = eval.evaluator.workspace / " ivy2Local"
351+ val moduleName = " main"
352+ val subDir =
353+ os.sub / compileAndRuntimeStuff.organization / moduleName / compileAndRuntimeStuff.version
354+ def repoHasIvyXml (): Boolean =
355+ os.isFile(ivy2Repo / subDir / " ivys/ivy.xml" )
356+ def repoHasJar (): Boolean =
357+ os.isFile(ivy2Repo / subDir / " jars" / s " $moduleName.jar " )
358+ def repoHasSourcesJar (): Boolean =
359+ os.isFile(ivy2Repo / subDir / " srcs" / s " $moduleName-sources.jar " )
360+ def repoHasDocJar (): Boolean =
361+ os.isFile(ivy2Repo / subDir / " docs" / s " $moduleName-javadoc.jar " )
362+ def clearRepo (): Unit =
363+ os.remove.all(ivy2Repo)
364+
365+ eval(compileAndRuntimeStuff.main.publishLocal(ivy2Repo.toString)).right.get
366+ assert(repoHasIvyXml())
367+ assert(repoHasJar())
368+ assert(repoHasSourcesJar())
369+ assert(repoHasDocJar())
370+
371+ clearRepo()
372+
373+ eval(compileAndRuntimeStuff.main.publishLocal(ivy2Repo.toString, doc = false )).right.get
374+ assert(repoHasIvyXml())
375+ assert(repoHasJar())
376+ assert(repoHasSourcesJar())
377+ assert(! repoHasDocJar())
378+
379+ clearRepo()
380+
381+ eval(compileAndRuntimeStuff.main.publishLocal(
382+ ivy2Repo.toString,
383+ doc = false ,
384+ sources = false
385+ )).right.get
386+ assert(repoHasIvyXml())
387+ assert(repoHasJar())
388+ assert(! repoHasSourcesJar())
389+ assert(! repoHasDocJar())
390+ }
391+
392+ test(" transitive" ) - UnitTester (compileAndRuntimeStuff, null ).scoped { eval =>
393+ val ivy2Repo = eval.evaluator.workspace / " ivy2Local"
394+ val mainModuleName = " main"
395+ val transitiveModuleName = " transitive"
396+ val runtimeTransitiveModuleName = " runtimeTransitive"
397+ def subDir (moduleName : String ) =
398+ os.sub / compileAndRuntimeStuff.organization / moduleName / compileAndRuntimeStuff.version
399+ def repoHasIvyXml (moduleName : String ): Boolean =
400+ os.isFile(ivy2Repo / subDir(moduleName) / " ivys/ivy.xml" )
401+ def repoHasJar (moduleName : String ): Boolean =
402+ os.isFile(ivy2Repo / subDir(moduleName) / " jars" / s " $moduleName.jar " )
403+ def repoHasSourcesJar (moduleName : String ): Boolean =
404+ os.isFile(ivy2Repo / subDir(moduleName) / " srcs" / s " $moduleName-sources.jar " )
405+ def repoHasDocJar (moduleName : String ): Boolean =
406+ os.isFile(ivy2Repo / subDir(moduleName) / " docs" / s " $moduleName-javadoc.jar " )
407+ def clearRepo (): Unit =
408+ os.remove.all(ivy2Repo)
409+
410+ eval(compileAndRuntimeStuff.transitive.publishLocal(ivy2Repo.toString)).right.get
411+ assert(! repoHasIvyXml(mainModuleName))
412+ assert(! repoHasJar(mainModuleName))
413+ assert(! repoHasSourcesJar(mainModuleName))
414+ assert(! repoHasDocJar(mainModuleName))
415+ assert(repoHasIvyXml(transitiveModuleName))
416+ assert(repoHasJar(transitiveModuleName))
417+ assert(repoHasSourcesJar(transitiveModuleName))
418+ assert(repoHasDocJar(transitiveModuleName))
419+
420+ clearRepo()
421+
422+ eval(compileAndRuntimeStuff.transitive.publishLocal(
423+ ivy2Repo.toString,
424+ transitive = true
425+ )).right.get
426+ assert(repoHasIvyXml(mainModuleName))
427+ assert(repoHasJar(mainModuleName))
428+ assert(repoHasSourcesJar(mainModuleName))
429+ assert(repoHasDocJar(mainModuleName))
430+ assert(repoHasIvyXml(transitiveModuleName))
431+ assert(repoHasJar(transitiveModuleName))
432+ assert(repoHasSourcesJar(transitiveModuleName))
433+ assert(repoHasDocJar(transitiveModuleName))
434+
435+ clearRepo()
436+
437+ eval(compileAndRuntimeStuff.transitive.publishLocal(ivy2Repo.toString, doc = false )).right.get
438+ assert(! repoHasIvyXml(mainModuleName))
439+ assert(! repoHasJar(mainModuleName))
440+ assert(! repoHasSourcesJar(mainModuleName))
441+ assert(! repoHasDocJar(mainModuleName))
442+ assert(repoHasIvyXml(transitiveModuleName))
443+ assert(repoHasJar(transitiveModuleName))
444+ assert(repoHasSourcesJar(transitiveModuleName))
445+ assert(! repoHasDocJar(transitiveModuleName))
446+
447+ clearRepo()
448+
449+ eval(compileAndRuntimeStuff.transitive.publishLocal(
450+ ivy2Repo.toString,
451+ doc = false ,
452+ transitive = true
453+ )).right.get
454+ assert(repoHasIvyXml(mainModuleName))
455+ assert(repoHasJar(mainModuleName))
456+ assert(repoHasSourcesJar(mainModuleName))
457+ assert(! repoHasDocJar(mainModuleName))
458+ assert(repoHasIvyXml(transitiveModuleName))
459+ assert(repoHasJar(transitiveModuleName))
460+ assert(repoHasSourcesJar(transitiveModuleName))
461+ assert(! repoHasDocJar(transitiveModuleName))
462+
463+ clearRepo()
464+
465+ eval(compileAndRuntimeStuff.runtimeTransitive.publishLocal(ivy2Repo.toString)).right.get
466+ assert(! repoHasIvyXml(mainModuleName))
467+ assert(! repoHasJar(mainModuleName))
468+ assert(! repoHasSourcesJar(mainModuleName))
469+ assert(! repoHasDocJar(mainModuleName))
470+ assert(repoHasIvyXml(runtimeTransitiveModuleName))
471+ assert(repoHasJar(runtimeTransitiveModuleName))
472+ assert(repoHasSourcesJar(runtimeTransitiveModuleName))
473+ assert(repoHasDocJar(runtimeTransitiveModuleName))
474+
475+ clearRepo()
476+
477+ eval(compileAndRuntimeStuff.runtimeTransitive.publishLocal(
478+ ivy2Repo.toString,
479+ transitive = true
480+ )).right.get
481+ assert(repoHasIvyXml(mainModuleName))
482+ assert(repoHasJar(mainModuleName))
483+ assert(repoHasSourcesJar(mainModuleName))
484+ assert(repoHasDocJar(mainModuleName))
485+ assert(repoHasIvyXml(runtimeTransitiveModuleName))
486+ assert(repoHasJar(runtimeTransitiveModuleName))
487+ assert(repoHasSourcesJar(runtimeTransitiveModuleName))
488+ assert(repoHasDocJar(runtimeTransitiveModuleName))
489+ }
346490 }
347491
348492}
0 commit comments