diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 73ba6175..af7d11bf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: fail-fast: false matrix: swift: - - '6.3' + - '6.3.1' os: - 'ubuntu-latest' #- 'macos-latest' @@ -89,7 +89,7 @@ jobs: - run: skip welcome - name: "Upload Build Artifacts" - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: skip-plugin-${{ runner.os }} path: artifacts/ @@ -143,7 +143,7 @@ jobs: - run: swift --version - name: "Download skip plugin" - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v8 with: name: skip-plugin-${{ runner.os }} path: skip-artifact diff --git a/Sources/SkipBuild/Commands/AndroidCommand.swift b/Sources/SkipBuild/Commands/AndroidCommand.swift index 903b4857..5f7be7a1 100644 --- a/Sources/SkipBuild/Commands/AndroidCommand.swift +++ b/Sources/SkipBuild/Commands/AndroidCommand.swift @@ -8,6 +8,7 @@ import FoundationNetworking #endif import ArgumentParser import TSCBasic +import struct TSCUtility.Version import ELFKit #if canImport(SkipDriveExternal) import SkipDriveExternal @@ -466,7 +467,9 @@ struct AndroidSDKInstallCommand: MessageCommand, ToolchainOptionsCommand { } else { // Look up the latest released Android SDK version let sdks = try await SwiftSDKOpenAPI.fetchSDKs(sdkName: "android") - guard let latest = sdks.first else { + // sort by semantic version so 6.3.1 > 6.3 + let latestReleases = try? sdks.sorted(by: { try Version(versionString: $0.version, usesLenientParsing: true) < Version(versionString: $1.version, usesLenientParsing: true) }) + guard let latest = latestReleases?.last ?? sdks.last else { throw AndroidError(errorDescription: "No released Android SDK versions found") } resolvedVersion = latest.version