1
1
plugins {
2
- id " io.github.rwinch.antora" version " 0.0.2"
2
+ id ' org.antora' version ' 1.0.0'
3
+ id ' io.spring.antora.generate-antora-yml' version ' 0.0.1'
3
4
}
4
5
5
6
apply plugin : ' io.spring.convention.docs'
@@ -27,17 +28,30 @@ dependencies {
27
28
testRuntimeOnly ' org.junit.jupiter:junit-jupiter-engine'
28
29
}
29
30
31
+
30
32
antora {
31
- antoraVersion = " 3.0.0-alpha.8"
32
- arguments = [" --fetch" ]
33
+ playbook = ' cached-antora-playbook.yml'
34
+ playbookProvider {
35
+ repository = ' spring-projects/spring-session'
36
+ branch = ' docs-build'
37
+ path = ' lib/antora/templates/per-branch-antora-playbook.yml'
38
+ checkLocalBranch = true
39
+ }
40
+ options = [clean : true , fetch : ! project. gradle. startParameter. offline, stacktrace : true ]
41
+ }
42
+
43
+ tasks. named(" generateAntoraYml" ) {
44
+ asciidocAttributes = project. provider( { generateAttributes() } )
45
+ asciidocAttributes. putAll(providers. provider( { resolvedVersions(project. configurations. testRuntimeClasspath) }))
33
46
}
34
47
35
- tasks. antora {
36
- environment = [
37
- " ALGOLIA_API_KEY" : " 82c7ead946afbac3cf98c32446154691" ,
38
- " ALGOLIA_APP_ID" : " 244V8V9FGG" ,
39
- " ALGOLIA_INDEX_NAME" : " session-docs"
40
- ]
48
+
49
+ def generateAttributes () {
50
+ def ghTag = snapshotBuild ? ' main' : project. version
51
+
52
+ return [' gh-tag' :ghTag,
53
+ ' spring-boot-version' : springBootVersion,
54
+ ' spring-session-version' : project. version]
41
55
}
42
56
43
57
sourceSets {
@@ -51,58 +65,13 @@ sourceSets {
51
65
}
52
66
}
53
67
54
- tasks. register(" generateAntora" ) {
55
- group = " Documentation"
56
- description = " Generates the antora.yml for dynamic properties"
57
- doLast {
58
- def dollar = ' $'
59
- def ghTag = snapshotBuild ? ' main' : project. version
60
- def ghUrl = " https://github.com/spring-projects/spring-session/tree/$ghTag "
61
- def versions = resolvedVersions(project. configurations. testRuntimeClasspath)
62
- def ymlVersions = " "
63
- versions. call(). each { name , version ->
64
- ymlVersions + = """
65
- ${ name} : ${ version} """
66
- }
67
- def outputFile = new File (" $buildDir /generateAntora/antora.yml" )
68
- outputFile. getParentFile(). mkdirs()
69
- outputFile. createNewFile()
70
- def antoraYmlText = file(" antora.yml" ). getText()
71
- outputFile. setText(""" $antoraYmlText
72
- title: Spring Session
73
- start_page: ROOT:index.adoc
74
- nav:
75
- - modules/ROOT/nav.adoc
76
-
77
- asciidoc:
78
- attributes:
79
- download-url: "https://github.com/spring-projects/spring-session/archive/${ ghTag} .zip"
80
- gh-samples-url: "$ghUrl /spring-session-samples/"
81
- samples-dir: "example${ dollar} spring-session-samples/"
82
- session-jdbc-main-resources-dir: "example${ dollar} session-jdbc-main-resources-dir/"
83
- spring-session-data-mongodb-dir: "example${ dollar} spring-session-data-mongodb-dir/"
84
- docs-test-dir: "example${ dollar} java/"
85
- websocketdoc-test-dir: 'example${ dollar} java/docs/websocket/'
86
- docs-test-resources-dir: "example${ dollar} resources/"
87
- indexdoc-tests: "example${ dollar} java/docs/IndexDocTests.java"
88
- spring-session-version: ${ project.version}
89
- version-milestone: $milestoneBuild
90
- version-release: $releaseBuild
91
- version-snapshot: $snapshotBuild
92
- spring-boot-version: ${ springBootVersion}
93
- ${ ymlVersions}
94
- """ )
95
- }
96
- }
97
68
98
69
repositories {
99
70
maven { url " https://repo.spring.io/release" }
100
71
}
101
72
102
73
def resolvedVersions (Configuration configuration ) {
103
- return {
104
- configuration. resolvedConfiguration
74
+ return configuration. resolvedConfiguration
105
75
.resolvedArtifacts
106
76
.collectEntries { [(it. name + " -version" ): it. moduleVersion. id. version] }
107
- }
108
77
}
0 commit comments