feat(autoversion): generate changelog HTML
All checks were successful
ci/woodpecker/manual/gradle Pipeline was successful
ci/woodpecker/manual/pages Pipeline was successful

This commit is contained in:
Johannes Frohnmeyer 2024-05-26 09:32:47 +02:00
parent d66a9e7c51
commit c9cbbce3b2
Signed by: Johannes
GPG Key ID: E76429612C2929F4
2 changed files with 15 additions and 7 deletions

View File

@ -32,6 +32,10 @@ var Project.changelog: String
get() = if (extra.has("changelog")) extra["changelog"].toString() else ""
set(value) = extra.set("changelog", value)
var Project.changelogHtml: String
get() = if (extra.has("changelogHtml")) extra["changelogHtml"].toString() else ""
set(value) = extra.set("changelogHtml", value)
var Project.flavour: String
get() = prop("flavour", "").trim()
set(value) {

View File

@ -13,7 +13,10 @@ if (File(projectDir, ".git").exists()) {
versionS = "0.0.0+notag"
val tags: List<Tag> = git.getTags()
if (tags.isNotEmpty()) {
if (tags[0].fullMessage != null) changelog += "${tags[0].fullMessage}\n"
if (tags[0].fullMessage != null) {
changelog += "${tags[0].fullMessage}\n"
changelogHtml += "<p>${tags[0].fullMessage}</p>\n"
}
versionS = tags[0].name
lastRelease = versionS
val parsedVersion = SemanticVersion.parse(versionS)
@ -21,14 +24,15 @@ if (File(projectDir, ".git").exists()) {
versionS = parsedVersion.unclassifiedToString()
if (isRelease) {
changelog += "Commits in ${versionType.displayName} $versionS:\n"
changelog += git.log(if (tags.size >= 2) tags[1].peeledId else null, tags[0].peeledId)
.reversed()
.joinToString("\n") { "- ${it.shortMessage}" }
val log = git.log(if (tags.size >= 2) tags[1].peeledId else null, tags[0].peeledId).reversed()
changelog += log.joinToString("\n") { "- ${it.shortMessage}" }
changelogHtml += "<ul>\n" + log.joinToString("") { " <li>${it.shortMessage}</li>\n" } + "</ul>"
nextRelease = parsedVersion
} else {
changelog += "Commits after ${versionType.displayName} $versionS:\n"
val log = git.log(tags[0].peeledId, git.repository.resolve("HEAD")).reversed()
changelog += log.joinToString("\n") { "- ${it.shortMessage}" }
changelogHtml += "<ul>\n" + log.joinToString("") { " <li>${it.shortMessage}</li>\n" } + "</ul>"
val type = log.stream()
.filter { !it.isMerge }
.map { it.fullMessage }
@ -39,9 +43,9 @@ if (File(projectDir, ".git").exists()) {
}
} else {
changelog += "Commits after inception:\n"
changelog += git.log().all().call()
.reversed()
.joinToString("\n") { "- ${it.shortMessage}" }
val log = git.log().all().call().reversed()
changelog += log.joinToString("\n") { "- ${it.shortMessage}" }
changelogHtml += "<ul>\n" + log.joinToString("") { " <li>${it.shortMessage}</li>\n" } + "</ul>"
}
}
} else changelog = "No changelog"