blob: eba7b1a1bcf15cd9bb2d86ae262d6a22a865744d [file] [log] [blame]
Roman Elizarovde61a742020-06-26 16:53:46 +03001import groovy.lang.*
2
Vsevolod Tolstopyatov0f158122020-04-29 23:35:41 +03003/*
4 * Copyright 2016-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
5 */
6
7val buildDocsDir = "$buildDir/docs"
8val jekyllDockerImage = "jekyll/jekyll:${version("jekyll")}"
9
Victor Turansky964cd922020-05-02 19:52:56 +030010val copyDocs by tasks.registering(Copy::class) {
Vsevolod Tolstopyatov0f158122020-04-29 23:35:41 +030011 val dokkaTasks = rootProject.getTasksByName("dokka", true)
12
13 from(dokkaTasks.map { "${it.project.buildDir}/dokka" }) {
14 include("**/*.md")
15 include("**/package-list")
16 }
17 from("docs")
18 into(buildDocsDir)
Roman Elizarovde61a742020-06-26 16:53:46 +030019 filter { it.replace("/index.md\"", "/index.html\"") }
Vsevolod Tolstopyatov0f158122020-04-29 23:35:41 +030020
21 dependsOn(dokkaTasks)
22}
23
Victor Turansky964cd922020-05-02 19:52:56 +030024val copyExampleFrontendJs by tasks.registering(Copy::class) {
Vsevolod Tolstopyatov0f158122020-04-29 23:35:41 +030025 val srcBuildDir = project(":example-frontend-js").buildDir
26 from("$srcBuildDir/dist")
27 into("$buildDocsDir/example-frontend-js")
28
Vsevolod Tolstopyatovfcaa6df2020-08-24 18:57:22 +030029 dependsOn(":example-frontend-js:browserDistribution")
Vsevolod Tolstopyatov0f158122020-04-29 23:35:41 +030030}
31
32tasks.register<Exec>("site") {
33 description = "Generate github pages"
34
35 inputs.files(fileTree(buildDocsDir))
36 outputs.dir("$buildDir/dist")
37 workingDir = file(buildDocsDir)
38
39 commandLine(
40 "docker", "run", "--rm", "--volume=$buildDir:/srv/jekyll",
41 "-t", jekyllDockerImage,
42 "/bin/bash", "-c", "cd docs; jekyll build"
43 )
44
45 dependsOn(copyDocs)
46 dependsOn(copyExampleFrontendJs)
47}
48
49// A useful task for local debugging -- serves a site locally
50tasks.register<Exec>("serve") {
51 commandLine(
52 "docker", "run", "--rm", "--volume=$buildDir:/srv/jekyll",
53 "-p", "8080:8080",
54 "-t", jekyllDockerImage,
55 "/bin/bash", "-c", "cd docs; jekyll serve --host 0.0.0.0 --port 8080"
56 )
57
58 dependsOn(copyDocs)
59 dependsOn(copyExampleFrontendJs)
60}
61
62tasks.register<Delete>("clean") {
63 delete(buildDir)
64}
65