From 8e28deb83341e453d8485d37875236e22936b0ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Kautler?= Date: Mon, 24 Feb 2025 11:06:06 +0100 Subject: [PATCH] fix: fix version comparison between versions with different part count --- .../typesafegithub/workflows/shared/internal/model/Version.kt | 3 +++ .../workflows/shared/internal/model/VersionTest.kt | 3 +++ 2 files changed, 6 insertions(+) diff --git a/shared-internal/src/main/kotlin/io/github/typesafegithub/workflows/shared/internal/model/Version.kt b/shared-internal/src/main/kotlin/io/github/typesafegithub/workflows/shared/internal/model/Version.kt index 4c7a9d1c81..d85002ef97 100644 --- a/shared-internal/src/main/kotlin/io/github/typesafegithub/workflows/shared/internal/model/Version.kt +++ b/shared-internal/src/main/kotlin/io/github/typesafegithub/workflows/shared/internal/model/Version.kt @@ -25,6 +25,9 @@ data class Version( return -1 } else if (otherIntPart == null) { return 1 + } else { + val comparison = intPart.compareTo(otherIntPart) + if (comparison != 0) return comparison } } if (versionParts.size < other.versionParts.size) return -1 diff --git a/shared-internal/src/test/kotlin/io/github/typesafegithub/workflows/shared/internal/model/VersionTest.kt b/shared-internal/src/test/kotlin/io/github/typesafegithub/workflows/shared/internal/model/VersionTest.kt index ab93740628..1392f58be7 100644 --- a/shared-internal/src/test/kotlin/io/github/typesafegithub/workflows/shared/internal/model/VersionTest.kt +++ b/shared-internal/src/test/kotlin/io/github/typesafegithub/workflows/shared/internal/model/VersionTest.kt @@ -52,6 +52,9 @@ class VersionTest : Triple("alpha", "beta", false), Triple("1.2.3", "1.2.3.4", false), Triple("3.2.1", "v3", true), + Triple("v1.2.1", "v2", false), + Triple("v1.2", "v2", false), + Triple("v1.2.1", "v1.3", false), ).forEach { (left, right, leftIsGreater) -> test("compareTo works correctly for $left vs. $right") { if (leftIsGreater) {