Skip to content

Commit

Permalink
Build paradox and api docs with sbt-site
Browse files Browse the repository at this point in the history
  • Loading branch information
2m committed Dec 17, 2018
1 parent 26ffcd2 commit 6351235
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 33 deletions.
33 changes: 20 additions & 13 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ lazy val modules: Seq[ProjectReference] = Seq(

lazy val alpakka = project
.in(file("."))
.enablePlugins(PublishUnidoc)
.disablePlugins(MimaPlugin)
.enablePlugins(ScalaUnidocPlugin)
.disablePlugins(MimaPlugin, SitePlugin)
.aggregate(modules: _*)
.aggregate(`doc-examples`)
.settings(
Expand All @@ -53,12 +53,11 @@ lazy val alpakka = project
|
|Useful sbt tasks:
|
| docs/Local/paradox - builds documentation with locally
| linked Scala API docs, which can be found at
| docs/target/paradox/site/local
| docs/previewSite - builds Paradox and Scaladoc documentation,
| starts a webserver and opens a new browser window
|
| test - runs all the tests for all of the connectors.
| Make sure to run `docker-compose up` first.
| Make sure to run `docker-compose up` first.
|
| mqtt/testOnly *.MqttSourceSpec - runs a single test
|
Expand Down Expand Up @@ -227,12 +226,16 @@ lazy val unixdomainsocket = alpakkaProject(
lazy val xml = alpakkaProject("xml", "xml", Dependencies.Xml)

lazy val docs = project
.enablePlugins(AkkaParadoxPlugin)
.enablePlugins(AkkaParadoxPlugin, ParadoxSitePlugin)
.disablePlugins(BintrayPlugin, MimaPlugin)
.settings(addMappingsToSiteDir(LocalRootProject / ScalaUnidoc / packageDoc / mappings, SiteScaladoc / siteSubdirName))
.settings(
name := "Alpakka",
publish / skip := true,
paradoxProperties ++= Map(
SiteScaladoc / siteSubdirName := s"api/alpakka/${version.value}",
Paradox / siteSubdirName := s"docs/alpakka/${version.value}",
Paradox / sourceDirectory := sourceDirectory.value / "main" / "paradox",
Paradox / paradoxProperties ++= Map(
"project.url" -> "https://developer.lightbend.com/docs/alpakka/current/",
"akka.version" -> Dependencies.AkkaVersion,
"akka-http.version" -> Dependencies.AkkaHttpVersion,
Expand All @@ -254,17 +257,20 @@ lazy val docs = project
"scaladoc.scala.base_url" -> s"http://www.scala-lang.org/api/current/",
"scaladoc.akka.base_url" -> s"http://doc.akka.io/api/akka/${Dependencies.AkkaVersion}",
"scaladoc.akka.http.base_url" -> s"https://doc.akka.io/api/akka-http/${Dependencies.AkkaHttpVersion}/",
"scaladoc.akka.stream.alpakka.base_url" -> s"http://developer.lightbend.com/docs/api/alpakka/${version.value}"
"scaladoc.akka.stream.alpakka.base_url" -> {
val docsHost = sys.env.get("CI")
.map(_ => "https://doc.akka.io")
.getOrElse(s"http://localhost:${(previewSite / previewFixedPort).value}")
s"$docsHost/api/alpakka/${version.value}/"
}
),
Paradox / paradoxGroups := Map("Language" -> Seq("Java", "Scala")),
resolvers += Resolver.jcenterRepo,
paradoxGroups := Map("Language" -> Seq("Java", "Scala")),
paradoxLocalApiKey := "scaladoc.akka.stream.alpakka.base_url",
paradoxLocalApiDir := (alpakka / Compile / sbtunidoc.BaseUnidocPlugin.autoImport.unidoc).value.head,
)

lazy val `doc-examples` = project
.enablePlugins(AutomateHeaderPlugin)
.disablePlugins(BintrayPlugin, MimaPlugin)
.disablePlugins(BintrayPlugin, MimaPlugin, SitePlugin)
.dependsOn(
modules.map(p => classpathDependency(p)): _*
)
Expand All @@ -277,6 +283,7 @@ lazy val `doc-examples` = project
def alpakkaProject(projectId: String, moduleName: String, additionalSettings: sbt.Def.SettingsDefinition*): Project =
Project(id = projectId, base = file(projectId))
.enablePlugins(AutomateHeaderPlugin)
.disablePlugins(SitePlugin)
.settings(
name := s"akka-stream-alpakka-$projectId",
AutomaticModuleName.settings(s"akka.stream.alpakka.$moduleName"),
Expand Down
19 changes: 0 additions & 19 deletions project/Publish.scala
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,3 @@ object Publish extends AutoPlugin {
bintrayRepository := (if (isSnapshot.value) "snapshots" else "maven")
)
}

object PublishUnidoc extends AutoPlugin {
import sbtunidoc.BaseUnidocPlugin.autoImport._
import sbtunidoc.ScalaUnidocPlugin.autoImport.ScalaUnidoc

override def requires = sbtunidoc.ScalaUnidocPlugin

def publishOnly(artifactType: String)(config: PublishConfiguration) = {
val newArts = config.artifacts.filter(_._1.`type` == artifactType)
config.withArtifacts(newArts)
}

override def projectSettings = Seq(
doc in Compile := (doc in ScalaUnidoc).value,
target in unidoc in ScalaUnidoc := crossTarget.value / "api",
publishConfiguration ~= publishOnly(Artifact.DocType),
publishLocalConfiguration ~= publishOnly(Artifact.DocType)
)
}
3 changes: 2 additions & 1 deletion project/plugins.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ addSbtPlugin("com.thoughtworks.sbt-api-mappings" % "sbt-api-mappings" % "2.1.0")
addSbtPlugin("org.foundweekends" % "sbt-bintray" % "0.5.4")
addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "0.3.0")
addSbtPlugin("com.lightbend" % "sbt-whitesource" % "0.1.13")
addSbtPlugin("lt.dvim.paradox" % "sbt-paradox-local" % "0.2")
addSbtPlugin("com.typesafe.sbt" % "sbt-site" % "1.3.2")
addSbtPlugin("com.eed3si9n" % "sbt-unidoc" % "0.4.2")
addSbtPlugin("com.lightbend.sbt" % "sbt-java-formatter" % "0.4.1")
addSbtPlugin("com.lightbend.akka.grpc" % "sbt-akka-grpc" % "0.4")
addSbtPlugin("com.lightbend.sbt" % "sbt-javaagent" % "0.1.4")
Expand Down

0 comments on commit 6351235

Please sign in to comment.