aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/docs/build.gradle.kts
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/docs/build.gradle.kts')
-rw-r--r--subprojects/docs/build.gradle.kts81
1 files changed, 64 insertions, 17 deletions
diff --git a/subprojects/docs/build.gradle.kts b/subprojects/docs/build.gradle.kts
index ab67128a..fcd6a651 100644
--- a/subprojects/docs/build.gradle.kts
+++ b/subprojects/docs/build.gradle.kts
@@ -22,24 +22,39 @@ val javadocs: Configuration by configurations.creating {
22 isCanBeResolved = true 22 isCanBeResolved = true
23} 23}
24 24
25val releasedJavadocs: Configuration by configurations.creating {
26 isCanBeConsumed = false
27 isCanBeResolved = true
28}
29
30val interpreterGroup = property("tools.refinery.interpreter.group").toString()
31val releasedVersion = property("tools.refinery.release").toString()
32val releasedInterpreterVersion = property("tools.refinery.interpreter.release").toString()
33
34repositories {
35 mavenCentral()
36}
37
25dependencies { 38dependencies {
26 gradle.projectsEvaluated { 39 gradle.projectsEvaluated {
27 for (subproject in rootProject.subprojects) { 40 for (subproject in rootProject.subprojects) {
28 if (subproject.plugins.hasPlugin(JavaLibraryPlugin::class)) { 41 if (subproject.plugins.hasPlugin(JavaLibraryPlugin::class)) {
29 javadocs(project(subproject.path, "javadocElements")) 42 javadocs(project(subproject.path, "javadocElements"))
43 val releasedProjectVersion = if (subproject.group.toString() == interpreterGroup)
44 releasedInterpreterVersion else releasedVersion
45 releasedJavadocs("${subproject.group}:${subproject.name}:$releasedProjectVersion:javadoc@jar")
30 } 46 }
31 } 47 }
32 } 48 }
49
50 javadocs(project(":refinery-gradle-plugins", "javadocElements"))
51 releasedJavadocs("tools.refinery:refinery-gradle-plugins:$releasedVersion:javadoc@jar")
33} 52}
34 53
35val srcDir = "src" 54val srcDir = "src"
36
37val docusaurusOutputDir = layout.buildDirectory.dir("docusaurus") 55val docusaurusOutputDir = layout.buildDirectory.dir("docusaurus")
38
39val javadocsDir = layout.buildDirectory.dir("javadocs") 56val javadocsDir = layout.buildDirectory.dir("javadocs")
40 57
41val javadocsDocsDir = javadocsDir.map { root -> root.dir("develop/javadoc") }
42
43val configFiles: FileCollection = files( 58val configFiles: FileCollection = files(
44 rootProject.file("yarn.lock"), 59 rootProject.file("yarn.lock"),
45 rootProject.file("package.json"), 60 rootProject.file("package.json"),
@@ -54,25 +69,57 @@ val lintConfigFiles: FileCollection = configFiles + files(
54 rootProject.file(".eslintrc.cjs"), rootProject.file("prettier.config.cjs") 69 rootProject.file(".eslintrc.cjs"), rootProject.file("prettier.config.cjs")
55) 70)
56 71
57tasks { 72abstract class ExtractJavadocTask : DefaultTask() {
58 val extractJavadocs by registering { 73 @get:OutputDirectory
59 dependsOn(javadocs) 74 abstract val targetDir: DirectoryProperty
60 outputs.dir(javadocsDir) 75
61 doFirst { 76 @get:Input
62 delete(javadocsDir) 77 abstract val resolvedJavadocArtifacts: MapProperty<String, File>
78
79 @get:Inject
80 abstract val fs: FileSystemOperations
81
82 @get:Inject
83 abstract val archive: ArchiveOperations
84
85 @TaskAction
86 fun action() {
87 fs.delete {
88 delete(targetDir)
63 } 89 }
64 doLast { 90 val javadocsDocsDir = targetDir.get()
65 javadocs.resolvedConfiguration.resolvedArtifacts.forEach { artifact -> 91 resolvedJavadocArtifacts.get().forEach { artifact ->
66 copy { 92 fs.copy {
67 from(zipTree(artifact.file)) 93 from(archive.zipTree(artifact.value))
68 into(javadocsDocsDir.map { root -> root.dir(artifact.moduleVersion.id.name) }) 94 into(javadocsDocsDir.dir(artifact.key))
69 }
70 } 95 }
71 } 96 }
72 } 97 }
98}
99
100fun resolveJavadocs(configuration: Configuration): Provider<Map<String, File>> {
101 return provider {
102 configuration.resolvedConfiguration.resolvedArtifacts.associate { artifact ->
103 artifact.moduleVersion.id.name to artifact.file
104 }
105 }
106}
107
108tasks {
109 val extractJavadocs by registering(ExtractJavadocTask::class) {
110 dependsOn(javadocs)
111 targetDir = javadocsDir.map { it.dir("snapshot/develop/javadoc" ) }
112 resolvedJavadocArtifacts = resolveJavadocs(javadocs)
113 }
114
115 val extractReleasedJavadocs by registering(ExtractJavadocTask::class) {
116 dependsOn(releasedJavadocs)
117 targetDir = javadocsDir.map { it.dir("develop/javadoc" ) }
118 resolvedJavadocArtifacts = resolveJavadocs(releasedJavadocs)
119 }
73 120
74 assembleFrontend { 121 assembleFrontend {
75 dependsOn(extractJavadocs) 122 dependsOn(extractJavadocs, extractReleasedJavadocs)
76 inputs.dir(srcDir) 123 inputs.dir(srcDir)
77 inputs.dir("static") 124 inputs.dir("static")
78 inputs.dir(javadocsDir) 125 inputs.dir(javadocsDir)