diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 980370d..3de56df 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,6 +22,8 @@ jobs: run: apt-get update && apt-get install -y git - name: Checkout repository uses: actions/checkout@v4 + - name: "Validate version tag doesn't exist" + run: GRADLE_USER_HOME=$HOME/.gradle ./gradlew validateVersion --console=plain --no-daemon - name: "Gradle cache" uses: actions/cache@v4 with: diff --git a/build.gradle b/build.gradle index 9341872..998e744 100644 --- a/build.gradle +++ b/build.gradle @@ -168,3 +168,18 @@ task tagRelease { } } } + +task validateVersion { + doLast { + def tagName = "v$version" + def remoteTags = grgit.lsremote(tags: true) + + def refName = "refs/tags/${tagName}" + def remoteHasTag = remoteTags.keySet().any { ref -> ref.fullName == refName } + + if (remoteHasTag) { + throw new GradleException("Tag ${tagName} already exists. Bump the version in gradle.properties.") + } + logger.lifecycle("✓ Version ${version} is valid (tag ${tagName} does not exist yet)") + } +} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index b04d23b..f941e99 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ -version=1.35.8-1 +version=1.35.8-2 org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8