pekko/project/Release.scala

45 lines
1.5 KiB
Scala
Raw Normal View History

/**
2017-01-04 17:37:10 +01:00
* Copyright (C) 2016-2017 Lightbend Inc. <http://www.lightbend.com>
*/
2011-12-09 21:55:49 +13:00
package akka
import sbt._
import sbt.Keys._
import java.io.File
import com.typesafe.sbt.pgp.PgpKeys.publishSigned
2014-04-25 16:32:43 +02:00
import sbtunidoc.Plugin.UnidocKeys._
import com.lightbend.paradox.sbt.ParadoxKeys
2011-12-09 21:55:49 +13:00
object Release extends ParadoxKeys {
2011-12-09 21:55:49 +13:00
val releaseDirectory = SettingKey[File]("release-directory")
lazy val settings: Seq[Setting[_]] = commandSettings ++ Seq(
2017-03-15 14:36:25 +01:00
releaseDirectory := crossTarget.value / "release"
2011-12-09 21:55:49 +13:00
)
lazy val commandSettings = Seq(
commands += buildReleaseCommand
2011-12-09 21:55:49 +13:00
)
def buildReleaseCommand = Command.command("buildRelease") { state =>
2011-12-09 21:55:49 +13:00
val extracted = Project.extract(state)
val release = extracted.get(releaseDirectory)
val releaseVersion = extracted.get(version)
val projectRef = extracted.get(thisProjectRef)
val repo = extracted.get(Publish.defaultPublishTo)
val state1 = extracted.runAggregated(publishSigned in projectRef, state)
2014-04-25 16:32:43 +02:00
val (state2, Seq(api, japi)) = extracted.runTask(unidoc in Compile, state1)
val (state3, docs) = extracted.runTask(paradox in ProjectRef(projectRef.build, "akka-docs") in Compile, state2)
2014-04-25 16:32:43 +02:00
2011-12-09 21:55:49 +13:00
IO.delete(release)
IO.createDirectory(release)
IO.copyDirectory(repo, release / "releases")
IO.copyDirectory(api, release / "api" / "akka" / releaseVersion)
IO.copyDirectory(japi, release / "japi" / "akka" / releaseVersion)
2011-12-09 21:55:49 +13:00
IO.copyDirectory(docs, release / "docs" / "akka" / releaseVersion)
state3
2011-12-09 21:55:49 +13:00
}
2011-12-09 21:55:49 +13:00
}