Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix update script #3508

Merged
merged 1 commit into from
Feb 2, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
<phase>validate</phase>
<configuration>
<source>file://${maven.multiModuleProjectDirectory}/tooling/scripts/update-antora-config.groovy</source>
<source>file://${maven.multiModuleProjectDirectory}/tooling/scripts/update-antora-yaml.groovy</source>
<properties>
<maven.multiModuleProjectDirectory>${maven.multiModuleProjectDirectory}</maven.multiModuleProjectDirectory>
</properties>
Expand Down
8 changes: 0 additions & 8 deletions tooling/scripts/update-antora-config.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -57,14 +57,6 @@ replaceInFiles.each { path ->
m.appendTail(newContent)
String newContentString = newContent.toString()

// This can only work on main branch or during a release. Otherwise it will break antora.yml.
if (path.getFileName().toString().equals('antora.yml')) {
final String versionReplacement = 'version: ' + (project.version.endsWith('-SNAPSHOT') ? 'next' : project.version)
println ' - setting '+ versionReplacement
final Pattern versionPattern = ~'version: [^\\s]+'
newContentString = versionPattern.matcher(newContentString).replaceFirst(versionReplacement)
}

if (!newContentString.equals(content)) {
println 'Updated ' + path
Files.write(path, newContentString.getBytes('UTF-8'))
Expand Down
58 changes: 44 additions & 14 deletions tooling/scripts/update-antora-yaml.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -16,31 +16,61 @@
*/

/**
* Replace property values (defined in pom.xml files) in Antora yaml config
* Update the version in antora.yml
*/
import java.nio.file.Path
import java.nio.file.Paths
import java.nio.file.Files
import java.util.stream.Stream
import java.util.stream.Collectors
import java.util.regex.Pattern
import java.util.regex.Matcher

final String PROJECT_BRANCH_ROOT = ''

final Path treeRootDir = Paths.get(properties['maven.multiModuleProjectDirectory'])

final Path path = treeRootDir.resolve('docs/antora.yml')
final Path antoraYmlPath = treeRootDir.resolve('docs/antora.yml')
final Path sourceMapPath = treeRootDir.resolve('docs/source-map.yml')

println 'Updating ' + path
final String content = path.getText('UTF-8')
final String versionReplacement = 'version: ' + (project.version.endsWith('-SNAPSHOT') ? 'latest' : project.version)
println ' - seting '+ versionReplacement
final Pattern versionPattern = ~'version: [^\\s]+'
final String newContentString = versionPattern.matcher(content).replaceFirst(versionReplacement)
println 'Examining ' + antoraYmlPath
final String antoraYmlContent = antoraYmlPath.getText('UTF-8')
final Pattern versionPattern = ~'version: ([^\\s]+)'
final Matcher versionMatcher = versionPattern.matcher(antoraYmlContent)
if (versionMatcher.find()) {
final String originalVersion = versionMatcher.group(1)
if (originalVersion.equals('next') && !project.version.endsWith('-SNAPSHOT')) {
final String docVersion = project.version.substring(0, project.version.lastIndexOf('.') + 1) + 'x'
final String versionReplacement = 'version: ' + docVersion

if (!newContentString.equals(content)) {
println 'Updated ' + path
Files.write(path, newContentString.getBytes('UTF-8'))
String newContentString = versionMatcher.replaceFirst(versionReplacement)

final Pattern removePattern = ~'(display-version: [^\\n]+\\n)|([ \\t]*prerelease: [^\\s]+\\n)'
final Matcher removeMatcher = removePattern.matcher(newContentString)
newContentString = removeMatcher.replaceAll('')

println ' - setting ' + versionReplacement + ' in ' + antoraYmlPath

Files.write(antoraYmlPath, newContentString.getBytes('UTF-8'))

final String sourceMapContent = sourceMapPath.getText('UTF-8')
final Pattern branchPattern = ~'([ \\t]*- branch: )([^\\s]+)'
final Matcher branchMatcher = branchPattern.matcher(sourceMapContent)
if (branchMatcher.find()) {
final String originalBranch = branchMatcher.group(2)
if ('main'.equals(originalBranch)) {
final String newBranch = PROJECT_BRANCH_ROOT + docVersion
final String branchReplacement = branchMatcher.group(1) + newBranch
final String newSourceMapContent = branchMatcher.replaceFirst(branchReplacement)

println ' - setting ' + branchReplacement + ' in ' + sourceMapPath

Files.write(sourceMapPath, newSourceMapContent.getBytes('UTF-8'))
}
} else {
println 'expected branch not found in ' + sourceMapPath + ': please examine!'
}
} else {
println 'Version is already correct in ' + antoraYmlPath
}
} else {
println 'No change in ' + path
println 'No version found in ' + antoraYmlPath
}