mirror of https://github.com/sbt/sbt.git
Make clean task run exclusively
This commit is contained in:
parent
7acb8764f5
commit
acf6c1191e
|
|
@ -374,7 +374,7 @@ object Defaults extends BuildCommon {
|
||||||
lazy val projectTasks: Seq[Setting[_]] = Seq(
|
lazy val projectTasks: Seq[Setting[_]] = Seq(
|
||||||
cleanFiles := cleanFilesTask.value,
|
cleanFiles := cleanFilesTask.value,
|
||||||
cleanKeepFiles := historyPath.value.toVector,
|
cleanKeepFiles := historyPath.value.toVector,
|
||||||
clean := IO.delete(cleanFiles.value),
|
clean := (Def.task { IO.delete(cleanFiles.value) } tag (Tags.Clean)).value,
|
||||||
consoleProject := consoleProjectTask.value,
|
consoleProject := consoleProjectTask.value,
|
||||||
watchTransitiveSources := watchTransitiveSourcesTask.value,
|
watchTransitiveSources := watchTransitiveSourcesTask.value,
|
||||||
watch := watchSetting.value
|
watch := watchSetting.value
|
||||||
|
|
@ -692,10 +692,15 @@ object Defaults extends BuildCommon {
|
||||||
Def.task {
|
Def.task {
|
||||||
Tests.discover(loadedTestFrameworks.value.values.toList, compile.value, streams.value.log)._1
|
Tests.discover(loadedTestFrameworks.value.values.toList, compile.value, streams.value.log)._1
|
||||||
}
|
}
|
||||||
def defaultRestrictions: Initialize[Seq[Tags.Rule]] = parallelExecution { par =>
|
def defaultRestrictions: Initialize[Seq[Tags.Rule]] =
|
||||||
val max = EvaluateTask.SystemProcessors
|
Def.setting {
|
||||||
Tags.limitAll(if (par) max else 1) :: Tags.limit(Tags.ForkedTestGroup, 1) :: Nil
|
val par = parallelExecution.value
|
||||||
}
|
val max = EvaluateTask.SystemProcessors
|
||||||
|
Tags.limitAll(if (par) max else 1) ::
|
||||||
|
Tags.limit(Tags.ForkedTestGroup, 1) ::
|
||||||
|
Tags.exclusiveGroup(Tags.Clean) ::
|
||||||
|
Nil
|
||||||
|
}
|
||||||
|
|
||||||
lazy val packageBase: Seq[Setting[_]] = Seq(
|
lazy val packageBase: Seq[Setting[_]] = Seq(
|
||||||
artifact := Artifact(moduleName.value)
|
artifact := Artifact(moduleName.value)
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ object Tags {
|
||||||
val Test = Tag("test")
|
val Test = Tag("test")
|
||||||
val Update = Tag("update")
|
val Update = Tag("update")
|
||||||
val Publish = Tag("publish")
|
val Publish = Tag("publish")
|
||||||
|
val Clean = Tag("clean")
|
||||||
|
|
||||||
val CPU = Tag("cpu")
|
val CPU = Tag("cpu")
|
||||||
val Network = Tag("network")
|
val Network = Tag("network")
|
||||||
|
|
@ -24,7 +25,7 @@ object Tags {
|
||||||
* Describes a restriction on concurrently executing tasks.
|
* Describes a restriction on concurrently executing tasks.
|
||||||
* A Rule is constructed using one of the Tags.limit* methods.
|
* A Rule is constructed using one of the Tags.limit* methods.
|
||||||
*/
|
*/
|
||||||
sealed trait Rule { // TODO: make this an abstract class for 0.14
|
abstract class Rule {
|
||||||
def apply(m: TagMap): Boolean
|
def apply(m: TagMap): Boolean
|
||||||
def ||(r: Rule): Rule = new Or(this, r)
|
def ||(r: Rule): Rule = new Or(this, r)
|
||||||
def &&(r: Rule): Rule = new And(this, r)
|
def &&(r: Rule): Rule = new And(this, r)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue