in plugins/src/main/java/com/google/gradle/plugins/ChangelogPlugin.kt [71:128]
override fun apply(project: Project) {
with(project) {
val extension =
extensions.create<ChangelogPluginExtension>("changelog").apply { commonConfiguration() }
val releasedApiFile = apiPlugin.exportFile.orElseIfNotExists(apiPlugin.apiFile)
val newApiFile = tasks.named("buildApi").regularOutputFile
val findChanges =
tasks.register<FindChangesTask>("findChanges") {
old.set(releasedApiFile)
new.set(newApiFile)
outputFile.set(tempFile("changes"))
}
val fileChanges = findChanges.regularOutputFile
tasks.register<MakeChangeTask>("makeChange") {
val changeMessage = provideProperty<String>("changeMessage")
val changeName = provideProperty<String>("changeName")
.orElse(RandomWordsGenerator.generateString())
val changeOutput = extension.outputDirectory.childFile("${changeName.get()}.json")
changesFile.set(fileChanges)
message.set(changeMessage)
outputFile.set(changeOutput)
}
tasks.register<WarnVersionBumpTask>("warnVersionBump") {
if (export.isPresent) {
export.set(apiPlugin.exportFile)
}
changesFile.set(fileChanges)
}
tasks.register<WarnAboutApiChangesTask>("warnAboutApiChanges") {
changesFile.set(fileChanges)
outputFile.set(extension.apiChangesFile)
}
val changelogFiles =
extension.outputDirectory.map { it.asFile.listFilesOrdered { it.extension == "json" } }
tasks.register<Delete>("deleteChangeFiles") {
group = "cleanup"
delete(changelogFiles)
}
tasks.register<MakeReleaseNotesTask>("makeReleaseNotes") {
onlyIf("No changelog files found") { changelogFiles.get().isNotEmpty() }
changeFiles.set(changelogFiles)
version.set(project.moduleVersion)
outputFile.set(extension.releaseNotesFile)
}
}
}