Skip to content

Commit ddc09fb

Browse files
committed
feat(pdf): build pdf by new tsx script
1 parent 57de449 commit ddc09fb

29 files changed

+327
-33
lines changed

.gitignore

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,20 +35,18 @@ pdf/kotlin-reference.pdf
3535
pdf/tmp.html
3636
*.pyc
3737
google-credentials.json
38-
./package-lock.json
38+
package-lock.json
3939
.env
4040
pages/api/
4141
external/
4242
assets/externals
4343
pages/docs/tutorials/kotlin-for-py/
4444
_teamcity
45-
dist
45+
/dist
4646
libs
4747
generated
4848
.next
4949
.teamcity/*.iml
5050

51-
/scripts/doindex/package-lock.json
52-
/search-report*
53-
/reports
51+
/reports*
5452
/data/page_views_map.json

.teamcity/builds/TemplateSearchIndex.kt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import jetbrains.buildServer.configs.kotlin.buildSteps.ScriptBuildStep
77
import jetbrains.buildServer.configs.kotlin.triggers.schedule
88
import vcsRoots.KotlinLangOrg
99

10-
const val SCRIPT_PATH = "scripts/doindex";
10+
const val SCRIPT_PATH = "scripts/dist";
1111

1212
fun scriptDistAnalyze(block: ScriptBuildStep.() -> Unit) = ScriptBuildStep {
1313
id = "script-dist-analyze"
@@ -42,11 +42,7 @@ abstract class TemplateSearchIndex(init: BuildType.() -> Unit) : BuildType({
4242
}
4343

4444
vcs {
45-
root(
46-
KotlinLangOrg, """
47-
$SCRIPT_PATH
48-
""".trimIndent()
49-
)
45+
root(KotlinLangOrg, "$SCRIPT_PATH/")
5046
cleanCheckout = true
5147
showDependenciesChanges = true
5248
}

.teamcity/builds/apiReferences/BuildApiPages.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package builds.apiReferences
22

33
import BuildParams.DOKKA_TEMPLATES_VERSION
4+
import builds.SCRIPT_PATH
45
import builds.scriptDistAnalyze
56
import jetbrains.buildServer.configs.kotlin.BuildStep
67
import jetbrains.buildServer.configs.kotlin.BuildSteps
@@ -39,7 +40,7 @@ abstract class BuildApiPages(
3940
artifactRules = "$pagesRoot/** => pages.zip"
4041

4142
vcs {
42-
root(KotlinLangOrg, "scripts/doindex/")
43+
root(KotlinLangOrg, "$SCRIPT_PATH/")
4344
}
4445

4546
params {

.teamcity/builds/apiReferences/stdlib/BuildStdlibApiReference.kt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package builds.apiReferences.stdlib
22

33
import BuildParams.KOTLIN_CORE_API_BUILD_ID
4+
import builds.SCRIPT_PATH
45
import builds.apiReferences.scriptGenerateSitemap
56
import builds.apiReferences.scriptNoRobots
67
import jetbrains.buildServer.configs.kotlin.AbsoluteId
78
import jetbrains.buildServer.configs.kotlin.BuildType
89
import jetbrains.buildServer.configs.kotlin.buildSteps.script
10+
import vcsRoots.KotlinLangOrg
911

1012
private const val PAGES_ROOT = "dist/api/core"
1113

@@ -14,11 +16,7 @@ object BuildStdlibApiReference : BuildType({
1416
description = "Build pages for Kotlin Core API"
1517

1618
vcs {
17-
root(
18-
vcsRoots.KotlinLangOrg, """
19-
scripts/doindex/
20-
""".trimIndent()
21-
)
19+
root(KotlinLangOrg, "$SCRIPT_PATH/")
2220
}
2321

2422
artifactRules = """

.teamcity/builds/kotlinlang/buidTypes/PdfGenerator.kt

Lines changed: 41 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,72 @@
11
package builds.kotlinlang.buidTypes
22

3+
import builds.SCRIPT_PATH
34
import builds.kotlinlang.templates.DockerImageBuilder
4-
import jetbrains.buildServer.configs.kotlin.AbsoluteId
55
import jetbrains.buildServer.configs.kotlin.BuildType
6+
import jetbrains.buildServer.configs.kotlin.FailureAction
67
import jetbrains.buildServer.configs.kotlin.buildSteps.script
78

8-
99
object PdfGenerator : BuildType({
1010
name = "PDF Generator"
1111
description = "Build PDF reference https://kotlinlang.org/docs/"
1212

1313
templates(DockerImageBuilder)
1414

15-
artifactRules = "pdf/kotlin-docs.pdf => kotlin-docs.pdf"
15+
artifactRules = """
16+
dist/docs/pdf.html
17+
pdf/kotlin-docs.pdf
18+
""".trimIndent()
19+
20+
requirements {
21+
doesNotContain("docker.server.osType", "windows")
22+
}
1623

1724
steps {
1825
script {
26+
id = "script-dist-pdf-html"
27+
name = "Generate pdf.html"
28+
//language=bash
29+
scriptContent = """
30+
#!/bin/sh
31+
set -e
32+
npm install
33+
npm run generate-pdf
34+
""".trimIndent()
35+
dockerImage = "node:22-alpine"
36+
workingDir = SCRIPT_PATH
37+
}
38+
script {
39+
name = "Generate PDF"
40+
//language=sh
1941
scriptContent = """
20-
#!/bin/bash
21-
22-
mv ./dist/docs/pdfSourceKR.html ./dist/docs/pdf.html
42+
# install legacy wkhtmltopdf deps
43+
apt update
44+
apt install -y xfonts-75dpi xfonts-100dpi libjpeg62-turbo xfonts-base
45+
wget https://deb.debian.org/debian/pool/main/o/openssl/libssl1.1_1.1.1w-0+deb11u1_amd64.deb
46+
wget https://deb.debian.org/debian/pool/main/o/openssl/libssl-dev_1.1.1w-0+deb11u1_amd64.deb
47+
wget https://deb.debian.org/debian/pool/main/o/openssl/openssl_1.1.1w-0+deb11u1_amd64.deb
48+
dpkg -i libssl1.1_1.1.1w-0+deb11u1_amd64.deb libssl-dev_1.1.1w-0+deb11u1_amd64.deb openssl_1.1.1w-0+deb11u1_amd64.deb
49+
ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so.62 /usr/lib/x86_64-linux-gnu/libjpeg.so.8
50+
# refresh wkhtmltopdf
51+
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.buster_amd64.deb
52+
dpkg -i wkhtmltox_0.12.6-1.buster_amd64.deb
2353
2454
## refresh packages
2555
pip install -r requirements.txt
26-
2756
python kotlin-website.py reference-pdf
2857
""".trimIndent()
29-
dockerImage = "%dep.Kotlin_KotlinSites_Builds_KotlinlangOrg_BuildPythonContainer.kotlin-website-image%"
58+
dockerImage = "python:3.9"
3059
}
3160
}
3261

3362
dependencies {
34-
dependency(AbsoluteId("Documentation_TransitioningProducts_KotlinReferenceWithCoroutines")) {
63+
dependency(BuildReferenceDocs) {
3564
snapshot {
65+
onDependencyFailure = FailureAction.FAIL_TO_START
66+
onDependencyCancel = FailureAction.CANCEL
3667
}
37-
3868
artifacts {
39-
cleanDestination = true
40-
artifactRules = """
41-
webHelpImages.zip!** => dist/docs/images
42-
pdfSourceKR.html => dist/docs/
43-
""".trimIndent()
69+
artifactRules = "+:docs.zip!** => dist/docs/"
4470
}
4571
}
4672
}
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)