pekko/project/Release.scala
Peter Vlugter 531397edc2 Add dist task for building download zip. Fixes #1001
Simpler than what was there before. Just a single zip file
is being created. Extending this should be coordinated
with Josh's work on the integrated typesafe stack build.

Also add caching to rstdoc task.
2011-12-13 14:41:55 +13:00

36 lines
1.2 KiB
Scala

package akka
import sbt._
import sbt.Keys._
import java.io.File
object Release {
val releaseDirectory = SettingKey[File]("release-directory")
lazy val settings: Seq[Setting[_]] = commandSettings ++ Seq(
releaseDirectory <<= crossTarget / "release"
)
lazy val commandSettings = Seq(
commands += buildReleaseCommand
)
def buildReleaseCommand = Command.command("build-release") { state =>
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(publish in projectRef, state)
val (state2, api) = extracted.runTask(Unidoc.unidoc, state1)
val (state3, docs) = extracted.runTask(Rstdoc.rstdoc, state2)
val (state4, dist) = extracted.runTask(Dist.dist, state3)
IO.delete(release)
IO.createDirectory(release)
IO.copyDirectory(repo, release / "releases")
IO.copyDirectory(api, release / "api" / "akka" / releaseVersion)
IO.copyDirectory(docs, release / "docs" / "akka" / releaseVersion)
IO.copyFile(dist, release / "downloads" / dist.name)
state4
}
}