diff --git a/.gitignore b/.gitignore index 5213fb46..9bb8bbf6 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ out .DS_Store spring-session-docs/package-lock.json spring-session-docs/node_modules/ +cached-antora-playbook.yml diff --git a/spring-session-docs/antora.yml b/spring-session-docs/antora.yml index 0fcde634..b8622d08 100644 --- a/spring-session-docs/antora.yml +++ b/spring-session-docs/antora.yml @@ -1,6 +1,7 @@ name: session version: true title: Spring Session +start_page: ROOT:index.adoc nav: - modules/ROOT/nav.adoc ext: @@ -10,3 +11,15 @@ ext: local: true scan: dir: ./build/generated-antora-resources +asciidoc: + attributes: + gh-url: "https://github.com/spring-projects/spring-session/tree/{gh-tag}" + download-url: "https://github.com/spring-projects/spring-session/archive/{gh-tag}.zip" + gh-samples-url: "{gh-url}/spring-session-samples/" + samples-dir: "example$spring-session-samples/" + session-jdbc-main-resources-dir: "example$session-jdbc-main-resources-dir/" + spring-session-data-mongodb-dir: "example$spring-session-data-mongodb-dir/" + docs-test-dir: "example$java/" + websocketdoc-test-dir: 'example$java/docs/websocket/' + docs-test-resources-dir: "example$resources/" + indexdoc-tests: "example$java/docs/IndexDocTests.java" diff --git a/spring-session-docs/spring-session-docs.gradle b/spring-session-docs/spring-session-docs.gradle index 51a78f7b..c817c8b2 100644 --- a/spring-session-docs/spring-session-docs.gradle +++ b/spring-session-docs/spring-session-docs.gradle @@ -1,6 +1,6 @@ plugins { - id 'org.antora' version '1.0.0' - id 'io.spring.antora.generate-antora-yml' version '0.0.1' + 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,57 +29,31 @@ dependencies { testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' } + antora { - 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] + 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.named("generateAntoraYml") { - asciidocAttributes = project.provider( { generateAttributes() } ) + asciidocAttributes = project.provider( { generateAttributes() } ) + asciidocAttributes.putAll(providers.provider( { resolvedVersions(project.configurations.testRuntimeClasspath) })) } -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 = project.springBootVersion - 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" - def springBootRefDocs = "https://docs.spring.io/spring-boot/docs/${springBootVersion}/reference/html" - 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, - 'spring-boot-ref-docs': springBootRefDocs.toString() - ] + resolvedVersions(project.configurations.testRuntimeClasspath) +def generateAttributes() { + def ghTag = snapshotBuild ? 'main' : project.version + def springBootRefDocs = "https://docs.spring.io/spring-boot/docs/${springBootVersion}/reference/html" + return ['gh-tag':ghTag, + 'spring-boot-version': springBootVersion, + 'spring-boot-ref-docs': springBootRefDocs.toString(), + 'spring-session-version': project.version] } sourceSets {