From 53a8b0465f44350670e5da98a8b357c7a7cff95b Mon Sep 17 00:00:00 2001 From: Antonio Perez Dieppa Date: Sun, 10 May 2026 15:54:12 +0100 Subject: [PATCH 1/2] refactor: reflective classes in @ChangeTemplate annotation --- .github/workflows/github-release.yml | 2 +- .github/workflows/module-release.yml | 6 +++--- build.gradle.kts | 10 ++++++++-- .../java/io/flamingock/template/sql/SqlTemplate.java | 4 ---- infra/module-release-with-retry.sh | 4 +++- 5 files changed, 15 insertions(+), 11 deletions(-) diff --git a/.github/workflows/github-release.yml b/.github/workflows/github-release.yml index f3053bc..e56d094 100644 --- a/.github/workflows/github-release.yml +++ b/.github/workflows/github-release.yml @@ -44,7 +44,7 @@ jobs: distribution: 'graalvm-community' - name: Publish Release to Github - run: ./gradlew jreleaserRelease --stacktrace --no-daemon + run: ./gradlew jreleaserRelease -Prelease --stacktrace --no-daemon env: JRELEASER_GITHUB_TOKEN: ${{ secrets.FLAMINGOCK_JRELEASER_GITHUB_TOKEN }} JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.FLAMINGOCK_JRELEASER_GPG_PUBLIC_KEY }} diff --git a/.github/workflows/module-release.yml b/.github/workflows/module-release.yml index ccbfac5..a32d2ef 100644 --- a/.github/workflows/module-release.yml +++ b/.github/workflows/module-release.yml @@ -59,16 +59,16 @@ jobs: - name: Prepare maven publish run: | if [ -n "${{ inputs.module }}" ]; then - ./gradlew publish -Pmodule=${{ inputs.module }} + ./gradlew publish -Prelease -Pmodule=${{ inputs.module }} else - ./gradlew publish + ./gradlew publish -Prelease fi env: JRELEASER_MAVENCENTRAL_USERNAME: ${{ secrets.FLAMINGOCK_JRELEASER_MAVENCENTRAL_USERNAME }} JRELEASER_MAVENCENTRAL_PASSWORD: ${{ secrets.FLAMINGOCK_JRELEASER_MAVENCENTRAL_PASSWORD }} - name: Release to Maven Central portal - run: ./infra/module-release-with-retry.sh "${{ inputs.module }}" 5 20 + run: ./infra/module-release-with-retry.sh "${{ inputs.module }}" 5 20 -Prelease env: JRELEASER_GITHUB_TOKEN: ${{ secrets.FLAMINGOCK_JRELEASER_GITHUB_TOKEN }} JRELEASER_MAVENCENTRAL_USERNAME: ${{ secrets.FLAMINGOCK_JRELEASER_MAVENCENTRAL_USERNAME }} diff --git a/build.gradle.kts b/build.gradle.kts index d2bd7fe..c4dbb2a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,3 +1,6 @@ +import io.flamingock.build.VersionManager +import io.flamingock.build.PrintVersionTask + buildscript { repositories { mavenCentral() @@ -16,9 +19,10 @@ plugins { allprojects { group = "io.flamingock" - version = "1.3.1" + val declaredVersion = "1.3.2-SNAPSHOT" + version = VersionManager.resolveVersion(declaredVersion, project.hasProperty("release")) - extra["templateApiVersion"] = "1.3.3" + extra["templateApiVersion"] = "1.3.4" extra["flamingockVersion"] = "1.2.1"//for tests repositories { @@ -33,3 +37,5 @@ subprojects { apply(plugin = "flamingock.release-management") } } + +tasks.register("printVersion") diff --git a/flamingock-sql-template/src/main/java/io/flamingock/template/sql/SqlTemplate.java b/flamingock-sql-template/src/main/java/io/flamingock/template/sql/SqlTemplate.java index 3004f33..ae402b0 100644 --- a/flamingock-sql-template/src/main/java/io/flamingock/template/sql/SqlTemplate.java +++ b/flamingock-sql-template/src/main/java/io/flamingock/template/sql/SqlTemplate.java @@ -62,10 +62,6 @@ public class SqlTemplate extends AbstractChangeTemplate/dev/null || true +extraFlags="$*" if [ -n "$module" ]; then MODULE_FLAG="-Pmodule=$module" @@ -12,7 +14,7 @@ else echo "Releasing bundle to Central Portal with max attempts[$maxAttempts] and $waitingSeconds seconds delay" fi for (( i=1; i<=maxAttempts; i++ )); do - if ./gradlew jreleaserDeploy $MODULE_FLAG --no-daemon --stacktrace; then + if ./gradlew jreleaserDeploy $MODULE_FLAG $extraFlags --no-daemon --stacktrace; then exit 0 fi if [ "$i" -eq "$maxAttempts" ]; then From a069f75261eff6cf24b5edb7275751974e4bfaed Mon Sep 17 00:00:00 2001 From: Antonio Perez Dieppa Date: Sun, 10 May 2026 16:07:14 +0100 Subject: [PATCH 2/2] refactor: fixed build --- .gitignore | 1 + .../io/flamingock/build/PrintVersionTask.kt | 12 ++++++++++++ .../io/flamingock/build/VersionManager.kt | 17 +++++++++++++++++ 3 files changed, 30 insertions(+) create mode 100644 buildSrc/src/main/kotlin/io/flamingock/build/PrintVersionTask.kt create mode 100644 buildSrc/src/main/kotlin/io/flamingock/build/VersionManager.kt diff --git a/.gitignore b/.gitignore index e5e5301..9f0853d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ # Gradle .gradle/ build/ +!buildSrc/src/main/kotlin/io/flamingock/build/ # IDE .idea/ diff --git a/buildSrc/src/main/kotlin/io/flamingock/build/PrintVersionTask.kt b/buildSrc/src/main/kotlin/io/flamingock/build/PrintVersionTask.kt new file mode 100644 index 0000000..0898fe0 --- /dev/null +++ b/buildSrc/src/main/kotlin/io/flamingock/build/PrintVersionTask.kt @@ -0,0 +1,12 @@ +package io.flamingock.build + +import org.gradle.api.DefaultTask +import org.gradle.api.tasks.TaskAction + +abstract class PrintVersionTask : DefaultTask() { + + @TaskAction + fun print() { + println(project.version) + } +} diff --git a/buildSrc/src/main/kotlin/io/flamingock/build/VersionManager.kt b/buildSrc/src/main/kotlin/io/flamingock/build/VersionManager.kt new file mode 100644 index 0000000..d432e26 --- /dev/null +++ b/buildSrc/src/main/kotlin/io/flamingock/build/VersionManager.kt @@ -0,0 +1,17 @@ +package io.flamingock.build + +object VersionManager { + + private const val SNAPSHOT_SUFFIX = "-SNAPSHOT" + + fun resolveVersion(declaredVersion: String, isRelease: Boolean): String { + if (!isRelease) return declaredVersion + require(declaredVersion.endsWith(SNAPSHOT_SUFFIX)) { + "Cannot release: version '$declaredVersion' does not end with $SNAPSHOT_SUFFIX. " + + "This prevents accidental double-releases." + } + return declaredVersion.removeSuffix(SNAPSHOT_SUFFIX) + } + + fun isSnapshot(version: String): Boolean = version.endsWith(SNAPSHOT_SUFFIX) +}