You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.7 KiB
66 lines
1.7 KiB
import groovy.lang.*
|
|
|
|
/*
|
|
* Copyright 2016-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
|
|
*/
|
|
|
|
val buildDocsDir = "$buildDir/docs"
|
|
val jekyllDockerImage = "jekyll/jekyll:${version("jekyll")}"
|
|
|
|
val copyDocs by tasks.registering(Copy::class) {
|
|
val dokkaTasks = rootProject.getTasksByName("dokka", true)
|
|
|
|
from(dokkaTasks.map { "${it.project.buildDir}/dokka" }) {
|
|
include("**/*.md")
|
|
include("**/package-list")
|
|
}
|
|
from("docs")
|
|
into(buildDocsDir)
|
|
filter { it.replace("/index.md\"", "/index.html\"") }
|
|
|
|
dependsOn(dokkaTasks)
|
|
}
|
|
|
|
val copyExampleFrontendJs by tasks.registering(Copy::class) {
|
|
val srcBuildDir = project(":example-frontend-js").buildDir
|
|
from("$srcBuildDir/dist")
|
|
into("$buildDocsDir/example-frontend-js")
|
|
|
|
dependsOn(":example-frontend-js:browserDistribution")
|
|
}
|
|
|
|
tasks.register<Exec>("site") {
|
|
description = "Generate github pages"
|
|
|
|
inputs.files(fileTree(buildDocsDir))
|
|
outputs.dir("$buildDir/dist")
|
|
workingDir = file(buildDocsDir)
|
|
|
|
commandLine(
|
|
"docker", "run", "--rm", "--volume=$buildDir:/srv/jekyll",
|
|
"-t", jekyllDockerImage,
|
|
"/bin/bash", "-c", "cd docs; jekyll build"
|
|
)
|
|
|
|
dependsOn(copyDocs)
|
|
dependsOn(copyExampleFrontendJs)
|
|
}
|
|
|
|
// A useful task for local debugging -- serves a site locally
|
|
tasks.register<Exec>("serve") {
|
|
commandLine(
|
|
"docker", "run", "--rm", "--volume=$buildDir:/srv/jekyll",
|
|
"-p", "8080:8080",
|
|
"-t", jekyllDockerImage,
|
|
"/bin/bash", "-c", "cd docs; jekyll serve --host 0.0.0.0 --port 8080"
|
|
)
|
|
|
|
dependsOn(copyDocs)
|
|
dependsOn(copyExampleFrontendJs)
|
|
}
|
|
|
|
tasks.register<Delete>("clean") {
|
|
delete(buildDir)
|
|
}
|
|
|