diff --git a/CHANGELOG.md b/CHANGELOG.md index 575cff79..ce79f595 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## Unreleased + +### Fixes + +- Normalize Linux ARM64 architecture name for bundled sentry-cli binary lookup ([#1201](https://github.com/getsentry/sentry-android-gradle-plugin/pull/1201)) + ## 6.7.1 ### Fixes diff --git a/plugin-build/download-sentry-cli.sh b/plugin-build/download-sentry-cli.sh index 9e9a7d01..59353012 100755 --- a/plugin-build/download-sentry-cli.sh +++ b/plugin-build/download-sentry-cli.sh @@ -9,7 +9,7 @@ function prop { base_url="$(prop 'repo')/releases/download/$(prop 'version')" target_dir="src/main/resources/bin/" -PLATFORMS="Darwin-universal Linux-i686 Linux-x86_64 Linux-aarch64 Windows-i686" +PLATFORMS="Darwin-arm64 Darwin-x86_64 Linux-i686 Linux-x86_64 Linux-aarch64 Windows-i686" rm -f $target_dir/sentry-cli-* for plat in $PLATFORMS; do diff --git a/plugin-build/src/main/kotlin/io/sentry/android/gradle/SentryCliProvider.kt b/plugin-build/src/main/kotlin/io/sentry/android/gradle/SentryCliProvider.kt index 423b8e51..8b0a3f2a 100644 --- a/plugin-build/src/main/kotlin/io/sentry/android/gradle/SentryCliProvider.kt +++ b/plugin-build/src/main/kotlin/io/sentry/android/gradle/SentryCliProvider.kt @@ -133,8 +133,18 @@ internal object SentryCliProvider { val osName = System.getProperty("os.name").toLowerCase(Locale.ROOT) val osArch = System.getProperty("os.arch") return when { - "mac" in osName -> "Darwin-universal" - "linux" in osName -> if (osArch == "amd64") "Linux-x86_64" else "Linux-$osArch" + "mac" in osName -> if (osArch == "aarch64") "Darwin-arm64" else "Darwin-x86_64" + "linux" in osName -> { + val normalizedArch = + when (osArch) { + "amd64", + "x86_64" -> "x86_64" + "arm64", + "aarch64" -> "aarch64" + else -> osArch + } + "Linux-$normalizedArch" + } "win" in osName -> "Windows-i686.exe" else -> null } diff --git a/plugin-build/src/test/kotlin/io/sentry/android/gradle/SentryCliProviderTest.kt b/plugin-build/src/test/kotlin/io/sentry/android/gradle/SentryCliProviderTest.kt index 0e8ddd78..ed3e310a 100644 --- a/plugin-build/src/test/kotlin/io/sentry/android/gradle/SentryCliProviderTest.kt +++ b/plugin-build/src/test/kotlin/io/sentry/android/gradle/SentryCliProviderTest.kt @@ -148,9 +148,15 @@ class SentryCliProviderTest { } @Test - @WithSystemProperty(["os.name"], ["mac"]) - fun `getCliSuffix on mac returns Darwin-universal`() { - assertEquals("Darwin-universal", getCliSuffix()) + @WithSystemProperty(["os.name", "os.arch"], ["mac", "aarch64"]) + fun `getCliSuffix on mac aarch64 returns Darwin-arm64`() { + assertEquals("Darwin-arm64", getCliSuffix()) + } + + @Test + @WithSystemProperty(["os.name", "os.arch"], ["mac", "x86_64"]) + fun `getCliSuffix on mac x86_64 returns Darwin-x86_64`() { + assertEquals("Darwin-x86_64", getCliSuffix()) } @Test @@ -159,6 +165,24 @@ class SentryCliProviderTest { assertEquals("Linux-x86_64", getCliSuffix()) } + @Test + @WithSystemProperty(["os.name", "os.arch"], ["linux", "x86_64"]) + fun `getCliSuffix on linux x86_64 returns Linux-x86_64`() { + assertEquals("Linux-x86_64", getCliSuffix()) + } + + @Test + @WithSystemProperty(["os.name", "os.arch"], ["linux", "arm64"]) + fun `getCliSuffix on linux arm64 returns Linux-aarch64`() { + assertEquals("Linux-aarch64", getCliSuffix()) + } + + @Test + @WithSystemProperty(["os.name", "os.arch"], ["linux", "aarch64"]) + fun `getCliSuffix on linux aarch64 returns Linux-aarch64`() { + assertEquals("Linux-aarch64", getCliSuffix()) + } + @Test @WithSystemProperty(["os.name", "os.arch"], ["linux", "armV7"]) fun `getCliSuffix on linux armV7 returns Linux-armV7`() {