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,27 +0,0 @@
site:
title: Spring Session
url: https://docs.spring.io/spring-session/reference/
asciidoc:
attributes:
page-pagination: true
content:
sources:
- url: https://github.com/spring-io/spring-generated-docs
branches: [spring-projects/spring-session/*]
- url: https://github.com/spring-projects/spring-session
branches: [main,2.7.x,2.6.x]
tags: [ '3.0.*', '2.7.*', '2.6.*','!2.6.0-M*','!2.6.0-RC*','!2.7.0-M1','!3.0.0-M1']
start_path: spring-session-docs
urls:
latest_version_segment_strategy: redirect:to
latest_version_segment: ''
redirect_facility: httpd
ui:
bundle:
url: https://github.com/spring-io/antora-ui-spring/releases/download/latest/ui-bundle.zip
snapshot: true
antora:
extensions:
- require: ./antora/extensions/version-fix.js
- require: ./antora/extensions/major-minor-segment.js

View File

@@ -1,3 +1,12 @@
name: ROOT
version: '3.0.1'
prerelease: '-SNAPSHOT'
version: true
title: Documentation
nav:
- modules/ROOT/nav.adoc
ext:
collector:
run:
command: gradlew -q -PbuildSrc.skipTests=true "-Dorg.gradle.jvmargs=-Xmx3g -XX:+HeapDumpOnOutOfMemoryError" :spring-session-docs:generateAntoraYml
local: true
scan:
dir: ./build/generated-antora-resources

View File

@@ -0,0 +1,35 @@
# PACKAGES antora@3.2.0-alpha.2 @antora/atlas-extension:1.0.0-alpha.1 @antora/collector-extension@1.0.0-alpha.3 @springio/antora-extensions@1.0.0 @asciidoctor/tabs@1.0.0-beta.3 @opendevise/antora-release-line-extension@1.0.0
#
# The purpose of this Antora playbook is to build the docs in the current branch.
antora:
extensions:
- '@antora/collector-extension'
- id: '@antora/atlas-extension'
require: '@antora/atlas-extension'
enabled: false
- '@opendevise/antora-release-line-extension'
- require: '@springio/antora-extensions/tabs-migration-extension'
unwrap_example_block: always
site:
title: Spring Session Reference
content:
sources:
- url: ./..
branches: HEAD
start_path: spring-session-docs
worktrees: true
asciidoc:
attributes:
hide-uri-scheme: '@'
page-pagination: ''
primary-site-url: https://docs.spring.io/spring-session/reference
tabs-sync-option: '@'
extensions:
- '@asciidoctor/tabs'
sourcemap: true
urls:
latest_version_segment: ''
ui:
bundle:
url: https://github.com/spring-io/antora-ui-spring/releases/download/latest/ui-bundle.zip
snapshot: true

View File

@@ -1,26 +0,0 @@
site:
title: Spring
url: https://docs.spring.io/spring-session/reference/
asciidoc:
attributes:
page-pagination: true
content:
sources:
- url: ../../spring-io/spring-generated-docs
branches: [spring-projects/spring-session/*]
- url: ../../spring-projects/spring-session
branches: [main]
start_path: spring-session-docs
urls:
latest_version_segment_strategy: redirect:to
latest_version_segment: ''
redirect_facility: httpd
ui:
bundle:
url: https://github.com/spring-io/antora-ui-spring/releases/download/latest/ui-bundle.zip
snapshot: true
antora:
extensions:
- require: ./antora/extensions/version-fix.js
- require: ./antora/extensions/major-minor-segment.js

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] }
}
}