in plugins/src/main/java/com/google/gradle/plugins/ReleasePlugin.kt [55:96]
override fun apply(project: Project) {
with(project) {
val buildApi = tasks.named<BuildApiTask>("buildApi")
val makeReleaseNotes = tasks.named<MakeReleaseNotesTask>("makeReleaseNotes")
val deleteChangeFiles = tasks.named<Delete>("deleteChangeFiles")
val releaseNotes = makeReleaseNotes.flatMap { it.outputFile }
val releasingVersion = releaseNotes.map { parseReleaseVersion(it.asFile, moduleVersion) }
val updateVersion =
tasks.register<VersionBumpTask>("updateVersion") {
dependsOn(makeReleaseNotes)
newVersion.set(releasingVersion)
}
val createNewApiFile =
tasks.register<CopyFileTask>("createNewApiFile") {
dependsOn(makeReleaseNotes)
val releasingFile =
releasingVersion.flatMap { rootProject.layout.file("api/${project.name}/$it.api") }
source.set(buildApi.regularOutputFile)
dest.set(releasingFile)
}
tasks.register("prepareRelease") {
group = "publishing"
dependsOn(makeReleaseNotes, updateVersion, createNewApiFile)
finalizedBy(deleteChangeFiles)
}
tasks.register("release") {
group = "publishing"
dependsOn("publishReleasePublicationToMavenRepository")
dependsOn("publishReleasePublicationToMavenLocal")
}
}
}