Update Antora Plugin to 1.0.0

Issue gh-2234
This commit is contained in:
Marcus Da Coregio
2023-02-16 09:41:50 -03:00
parent d7d36846a1
commit 7d1b01daf6
19 changed files with 507 additions and 263 deletions

View File

@@ -1,5 +1,6 @@
plugins {
id "io.github.rwinch.antora" version "0.0.2"
id 'org.antora' version '1.0.0'
id 'io.spring.antora.generate-antora-yml' version '0.0.1'
}
apply plugin: 'io.spring.convention.docs'
@@ -29,16 +30,54 @@ dependencies {
}
antora {
antoraVersion = "3.1.0"
arguments = ["--fetch"]
playbook = 'cached-antora-playbook.yml'
playbookProvider {
repository = 'spring-projects/spring-session'
branch = 'docs-build'
path = 'lib/antora/templates/per-branch-antora-playbook.yml'
checkLocalBranch = true
}
options = [clean: true, fetch: !project.gradle.startParameter.offline, stacktrace: true]
}
tasks.antora {
environment = [
"ALGOLIA_API_KEY" : "82c7ead946afbac3cf98c32446154691",
"ALGOLIA_APP_ID" : "244V8V9FGG",
"ALGOLIA_INDEX_NAME" : "session-docs"
]
tasks.named("generateAntoraYml") {
asciidocAttributes = project.provider( { generateAttributes() } )
}
def generateAttributes() {
def dollar = '$'
def ghTag = snapshotBuild ? 'main' : project.version
def ghUrl = "https://github.com/spring-projects/spring-session/tree/${ghTag.toString()}"
def snapshotBuild = project.version.contains("SNAPSHOT")
def milestoneBuild = project.version.contains("-M")
def releaseBuild = (!snapshotBuild && !milestoneBuild)
def springBootVersion = "2.7.0"
def downloadUrl = "https://github.com/spring-projects/spring-session/archive/${ghTag}.zip"
def ghSamplesUrl = "$ghUrl/spring-session-samples/"
def samplesDir = "example${dollar}spring-session-samples/"
def sessionJdbcMainResourcesDir = "example${dollar.toString()}session-jdbc-main-resources-dir/"
def springSessionDataMongoDbDir = "example${dollar.toString()}spring-session-data-mongodb-dir/"
def docsTestDir = "example${dollar.toString()}java/"
def websocketdocTestDir = "example${dollar.toString()}java/docs/websocket/"
def docsTestResourcesDir = "example${dollar.toString()}resources/"
def indexdocTests = "example${dollar.toString()}java/docs/IndexDocTests.java"
return [
'download-url': downloadUrl.toString(),
'gh-samples-url': ghSamplesUrl.toString(),
'samples-dir': samplesDir.toString(),
'session-jdbc-main-resources-dir': sessionJdbcMainResourcesDir.toString(),
'spring-session-data-mongodb-dir': springSessionDataMongoDbDir.toString(),
'docs-test-dir': docsTestDir.toString(),
'websocketdoc-test-dir': websocketdocTestDir.toString(),
'docs-test-resources-dir': docsTestResourcesDir.toString(),
'indexdoc-tests': indexdocTests.toString(),
'spring-session-version': project.version,
'version-milestone': milestoneBuild,
'version-release': releaseBuild,
'version-snapshot': snapshotBuild,
'spring-boot-version': springBootVersion
] + resolvedVersions(project.configurations.testRuntimeClasspath)
}
sourceSets {
@@ -52,58 +91,16 @@ sourceSets {
}
}
tasks.register("generateAntora") {
group = "Documentation"
description = "Generates the antora.yml for dynamic properties"
doLast {
def dollar = '$'
def ghTag = snapshotBuild ? 'main' : project.version
def ghUrl = "https://github.com/spring-projects/spring-session/tree/$ghTag"
def versions = resolvedVersions(project.configurations.testRuntimeClasspath)
def ymlVersions = ""
versions.call().each { name, version ->
ymlVersions += """
${name}: ${version}"""
}
def outputFile = new File("$buildDir/generateAntora/antora.yml")
outputFile.getParentFile().mkdirs()
outputFile.createNewFile()
def antoraYmlText = file("antora.yml").getText()
outputFile.setText("""$antoraYmlText
title: Spring Session
start_page: ROOT:index.adoc
nav:
- modules/ROOT/nav.adoc
asciidoc:
attributes:
download-url: "https://github.com/spring-projects/spring-session/archive/${ghTag}.zip"
gh-samples-url: "$ghUrl/spring-session-samples/"
samples-dir: "example${dollar}spring-session-samples/"
session-jdbc-main-resources-dir: "example${dollar}session-jdbc-main-resources-dir/"
spring-session-data-mongodb-dir: "example${dollar}spring-session-data-mongodb-dir/"
docs-test-dir: "example${dollar}java/"
websocketdoc-test-dir: 'example${dollar}java/docs/websocket/'
docs-test-resources-dir: "example${dollar}resources/"
indexdoc-tests: "example${dollar}java/docs/IndexDocTests.java"
spring-session-version: ${project.version}
version-milestone: $milestoneBuild
version-release: $releaseBuild
version-snapshot: $snapshotBuild
spring-boot-version: ${springBootVersion}
${ymlVersions}
""")
}
}
repositories {
maven { url "https://repo.spring.io/release" }
mavenCentral()
maven { url 'https://repo.spring.io/release' }
maven { url 'https://repo.spring.io/milestone' }
maven { url 'https://repo.spring.io/snapshot' }
}
def resolvedVersions(Configuration configuration) {
return {
configuration.resolvedConfiguration
return configuration.resolvedConfiguration
.resolvedArtifacts
.collectEntries { [(it.name + "-version"): it.moduleVersion.id.version] }
}
}