From 943c72c554c4c0f72069dd4c845b169deb99ebf1 Mon Sep 17 00:00:00 2001 From: Maciej Laskowski Date: Sat, 16 May 2020 20:09:48 +0200 Subject: [PATCH] fixed #32 - automated releasing knotx-gradle-plugins --- release-gradle/.gitignore | 55 ------------------- release-gradle/README.md | 6 +- release-gradle/build.gradle.kts | 16 ++++-- .../kotlin/io/knotx/ReleaseNotesPlugin.kt | 6 +- 4 files changed, 16 insertions(+), 67 deletions(-) delete mode 100644 release-gradle/.gitignore diff --git a/release-gradle/.gitignore b/release-gradle/.gitignore deleted file mode 100644 index ec880b1..0000000 --- a/release-gradle/.gitignore +++ /dev/null @@ -1,55 +0,0 @@ -# Project specific # -###################### -.vertx -file-uploads -.composite-enabled - -# Compiled source # -################### -*.class - -# Packages # -############ -# it's better to unpack these files and commit the raw source -# git has its own built in compression methods -*.7z -*.dmg -*.gz -*.iso -*.jar -*.rar -*.tar -*.zip - -# Logs # -###################### -*.log - -# OS generated files # -###################### -.DS_Store -.DS_Store? -._* -.Spotlight-V100 -.Trashes -ehthumbs.db -Thumbs.db -~* - -# Intellij # -###################### -.idea -**/build/ -**/out/ - -# Gradle # -###################### -.gradle -!gradle-wrapper.jar - -# Other # -###################### -*.iml -*.iws -*.ipr -*.vlt \ No newline at end of file diff --git a/release-gradle/README.md b/release-gradle/README.md index 8af10be..6712f14 100644 --- a/release-gradle/README.md +++ b/release-gradle/README.md @@ -42,18 +42,18 @@ org.gradle.internal.http.socketTimeout=300000 or to save results to log: - `./gradlew release -PreleaseVersion=2.0.0 -PnextVersion=2.1.0-SNAPSHOT -Pbranch=master 2>&1 | tee ./release.log` + `./gradlew release -PreleaseVersion=2.2.0-RC1 -PnextVersion=2.2.1-SNAPSHOT -Pbranch=master 2>&1 | tee ./release.$(date "+%Y.%m.%d-%H.%M.%S").log` That will run following phases in that order: - `prepare` - - `publilsh` + - `publish` - `close` Properties: - `releaseVersion` - sets the desired release version, - `nextVersion` - sets the next development version (will be set at the `close` phase), - `branch` - the branch that will be used as a release base for all repos, - - `dryRun` - if set to `true` nothing will be saved (all changes will be done only locally). + - `dryRun` - if set to `true` nothing will be saved (all changes will be done only locally), default is `false` 2. Promote manually artifacts to maven central repo using https://oss.sonatype.org/. diff --git a/release-gradle/build.gradle.kts b/release-gradle/build.gradle.kts index bb0f94e..88822ec 100644 --- a/release-gradle/build.gradle.kts +++ b/release-gradle/build.gradle.kts @@ -9,6 +9,7 @@ val DRY_RUN = project.findProperty("dryRun")?.toString()?.toBoolean() ?: false val WEBSITE = "Knotx/knotx-website" val TO_RELEASE = setOf( + "Knotx/knotx-gradle-plugins", "Knotx/knotx-dependencies", "Knotx/knotx-commons", "Knotx/knotx-launcher", @@ -28,7 +29,7 @@ tasks { * PREPARE */ - register("setup") { + register("clean") { group = "prepare" doFirst { justLog("INFO", "root", "Cleaning $buildDir") @@ -39,7 +40,7 @@ tasks { register("cloneProjects") { group = "prepare" - dependsOn("setup") + dependsOn("clean") doLast { TO_RELEASE.forEach { repo -> justLog("INFO", project.buildDir.path, "cloning $repo") @@ -63,7 +64,7 @@ tasks { dependsOn("cloneProjects") doLast { TO_RELEASE.forEach { repo -> - execOnRepo(repo, "sh gradlew prepare -Pversion=${VERSION} -Pknotx.version=${VERSION} --rerun-tasks") + execOnRepo(repo, "sh gradlew prepare -Pversion=${VERSION} -PknotxVersion=${VERSION} --rerun-tasks") } } } @@ -89,7 +90,11 @@ tasks { group = "close release" doLast { TO_RELEASE.forEach { repo -> - execOnRepo(repo, "sh gradlew setVersion -Pversion=${NEXT_VERSION} -Pknotx.version=${NEXT_VERSION}") + execOnRepo(repo, "sh gradlew setVersion -Pversion=${NEXT_VERSION} -PknotxVersion=${NEXT_VERSION}") + if (repo.contains("knotx-gradle-plugins")) { + justLog("INFO", repo, "publishing locally ${NEXT_VERSION} to satisfy dependencies") + execOnRepo(repo, "sh gradlew publishToMavenLocal") + } execOnRepo(repo, "git add -A") execOnRepo(repo, listOf("git", "commit", "-m", "Setting next development version to ${NEXT_VERSION}")) } @@ -129,8 +134,7 @@ tasks { } } - register("aggregateChanges") { - group = "release notes" + named("aggregateChanges") { repositories = TO_RELEASE.map { s -> s.substringAfter("/") } version = VERSION dependsOn("cloneWebsiteRepo") diff --git a/release-gradle/buildSrc/src/main/kotlin/io/knotx/ReleaseNotesPlugin.kt b/release-gradle/buildSrc/src/main/kotlin/io/knotx/ReleaseNotesPlugin.kt index 72b8695..8421de9 100644 --- a/release-gradle/buildSrc/src/main/kotlin/io/knotx/ReleaseNotesPlugin.kt +++ b/release-gradle/buildSrc/src/main/kotlin/io/knotx/ReleaseNotesPlugin.kt @@ -10,9 +10,9 @@ class ReleaseNotesPlugin : Plugin { override fun apply(project: Project) { with(project) { tasks { -// register("aggregateChanges") { -// group = "release prepare" -// } + register("aggregateChanges") { + group = "release prepare" + } } } }