From 5e8bbf8d0d80090bfefc64e2c844ae9643dced61 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Thu, 27 Jul 2017 22:02:37 -0400 Subject: [PATCH] implement `skip in publish` `skip in publish` when set to `true` will skip publish, publishLocal, and publishM2. (sbt-pgp already skips publishSigned). Fixes sbt/sbt#3136 --- main/src/main/scala/sbt/Defaults.scala | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index e88f2a811..bef9c27dc 100755 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -2159,16 +2159,26 @@ object Classpaths { classifiers.toVector ) } + def deliverTask(config: TaskKey[PublishConfiguration]): Initialize[Task[File]] = Def.task { val _ = update.value IvyActions.deliver(ivyModule.value, config.value, streams.value.log) } + def publishTask(config: TaskKey[PublishConfiguration], deliverKey: TaskKey[_]): Initialize[Task[Unit]] = - Def.task { - IvyActions.publish(ivyModule.value, config.value, streams.value.log) + Def.taskDyn { + val s = streams.value + val skp = (skip in publish).value + val ref = thisProjectRef.value + if (skp) Def.task { s.log.debug(s"Skipping publish* for ${ref.project}") } + else Def.task { + val cfg = config.value + IvyActions.publish(ivyModule.value, config.value, s.log) + } } tag (Tags.Publish, Tags.Network) + val moduleIdJsonKeyFormat: sjsonnew.JsonKeyFormat[ModuleID] = new sjsonnew.JsonKeyFormat[ModuleID] { import sjsonnew.support.scalajson.unsafe._