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("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("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("clean") { delete(buildDir) }