Fix changelog task to use git tag as input
This commit is contained in:
parent
c7a888a413
commit
3e1fbb6acd
1 changed files with 17 additions and 5 deletions
|
@ -2,25 +2,37 @@ package com.wbrawner.releasehelper
|
|||
|
||||
import org.gradle.api.DefaultTask
|
||||
import org.gradle.api.file.RegularFileProperty
|
||||
import org.gradle.api.internal.provider.Providers
|
||||
import org.gradle.api.model.ObjectFactory
|
||||
import org.gradle.api.provider.Property
|
||||
import org.gradle.api.provider.ProviderFactory
|
||||
import org.gradle.api.tasks.Input
|
||||
import org.gradle.api.tasks.OutputFile
|
||||
import org.gradle.api.tasks.TaskAction
|
||||
import javax.inject.Inject
|
||||
|
||||
private const val CHANGELOG_PATH = "src/play/play/release-notes/en-US/default.txt"
|
||||
private const val CHANGELOG_PATH = "src/play/play/release-notes/en-US/production.txt"
|
||||
|
||||
abstract class ChangelogTask @Inject constructor(objectFactory: ObjectFactory) : DefaultTask() {
|
||||
abstract class ChangelogTask @Inject constructor(
|
||||
objectFactory: ObjectFactory,
|
||||
providers: ProviderFactory,
|
||||
) : DefaultTask() {
|
||||
@get:OutputFile
|
||||
val changelogFile: RegularFileProperty = objectFactory.fileProperty()
|
||||
|
||||
@get:Input
|
||||
@Suppress("UnstableApiUsage")
|
||||
val latestTag: String = providers.exec {
|
||||
commandLine("git" , "describe", "--tags", "--abbrev=0")
|
||||
}.standardOutput.asText.get()
|
||||
|
||||
init {
|
||||
changelogFile.set(project.layout.projectDirectory.file(CHANGELOG_PATH))
|
||||
}
|
||||
|
||||
@TaskAction
|
||||
fun execute() {
|
||||
val latestTag = "git describe --tags --abbrev=0".execute()
|
||||
val changelog = "git log --format=\"%B\" ${latestTag.first().trim()}..".execute()
|
||||
val changelog = "git log --format=\"%B\" ${latestTag.trim()}..".execute()
|
||||
logger.info("Latest tag: $latestTag")
|
||||
logger.info("Changelog: ${changelog.joinToString("\n")}")
|
||||
changelogFile.get().asFile.writer().use { writer ->
|
||||
|
@ -36,4 +48,4 @@ abstract class ChangelogTask @Inject constructor(objectFactory: ObjectFactory) :
|
|||
.start()
|
||||
.inputReader()
|
||||
.readLines()
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue