From 512b4fac5387e55fded454ca57748e80b51a18ba Mon Sep 17 00:00:00 2001 From: Fabrice de Gans Date: Mon, 21 Apr 2025 15:15:09 +0200 Subject: [PATCH] Android: Update Android platform packaging This modifies the package Android platform job to handle the changes in swiftlang/swift-installer-scripts#406. --- .github/workflows/swift-toolchain.yml | 87 +++++++++++++++++++++------ 1 file changed, 68 insertions(+), 19 deletions(-) diff --git a/.github/workflows/swift-toolchain.yml b/.github/workflows/swift-toolchain.yml index f8fe73fa6..4d909b9e8 100644 --- a/.github/workflows/swift-toolchain.yml +++ b/.github/workflows/swift-toolchain.yml @@ -4090,52 +4090,98 @@ jobs: - if: inputs.build_android uses: thebrowsercompany/gha-download-tar-artifact@59992d91335d4ecba543c8535f7d07238e42125d # main with: - name: Android-${{ matrix.arch }}-stdlib + name: Android-arm64-stdlib path: ${{ github.workspace }}/BuildRoot/Library - if: inputs.build_android uses: actions/download-artifact@v4 with: - name: Android-${{ matrix.arch }}-sdk + name: Android-arm64-sdk path: ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform + - if: inputs.build_android + uses: actions/download-artifact@v4 + with: + name: Android-arm64-ds2 + path: ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/Library + - if: inputs.build_android + run: | + New-Item -ItemType Directory -Path ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/Dispatch.swiftmodule -Force + Move-Item ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/Android/aarch64/Dispatch.swiftdoc ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/Dispatch.swiftmodule/aarch64-unknown-linux-android.swiftdoc + Move-Item ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/Android/aarch64/Dispatch.swiftmodule ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/Dispatch.swiftmodule/aarch64-unknown-linux-android.swiftmodule + + Move-Item -Path "${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/lib*.so" -Destination ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/aarch64/ + Move-Item -Path "${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/lib*.a" -Destination ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/aarch64/ - if: inputs.build_android uses: thebrowsercompany/gha-download-tar-artifact@59992d91335d4ecba543c8535f7d07238e42125d # main with: - name: Android-${{ matrix.arch }}-stdlib + name: Android-armv7-stdlib path: ${{ github.workspace }}/BuildRoot/Library - if: inputs.build_android uses: actions/download-artifact@v4 with: - name: Android-${{ matrix.arch }}-sdk + name: Android-armv7-sdk path: ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform + - if: inputs.build_android + uses: actions/download-artifact@v4 + with: + name: Android-armv7-ds2 + path: ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/Library + - if: inputs.build_android + run: | + New-Item -ItemType Directory -Path ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/Dispatch.swiftmodule -Force + Move-Item ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/Android/armv7/Dispatch.swiftdoc ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/Dispatch.swiftmodule/armv7-unknown-linux-android.swiftdoc + Move-Item ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/Android/armv7/Dispatch.swiftmodule ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/Dispatch.swiftmodule/armv7-unknown-linux-android.swiftmodule + + Move-Item -Path "${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/lib*.so" -Destination ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/armv7/ + Move-Item -Path "${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/lib*.a" -Destination ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/armv7/ - if: inputs.build_android uses: thebrowsercompany/gha-download-tar-artifact@59992d91335d4ecba543c8535f7d07238e42125d # main with: - name: Android-${{ matrix.arch }}-stdlib + name: Android-x86_64-stdlib path: ${{ github.workspace }}/BuildRoot/Library - if: inputs.build_android uses: actions/download-artifact@v4 with: - name: Android-${{ matrix.arch }}-sdk + name: Android-x86_64-sdk path: ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform + - if: inputs.build_android + uses: actions/download-artifact@v4 + with: + name: Android-x86_64-ds2 + path: ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/Library + - if: inputs.build_android + run: | + New-Item -ItemType Directory -Path ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/Dispatch.swiftmodule -Force + Move-Item ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/Android/x86_64/Dispatch.swiftdoc ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/Dispatch.swiftmodule/x86_64-unknown-linux-android.swiftdoc + Move-Item ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/Android/x86_64/Dispatch.swiftmodule ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/Dispatch.swiftmodule/x86_64-unknown-linux-android.swiftmodule + + Move-Item -Path "${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/lib*.so" -Destination ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/x86_64/ + Move-Item -Path "${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/lib*.a" -Destination ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/x86_64/ - if: inputs.build_android uses: thebrowsercompany/gha-download-tar-artifact@59992d91335d4ecba543c8535f7d07238e42125d # main with: - name: Android-${{ matrix.arch }}-stdlib + name: Android-i686-stdlib path: ${{ github.workspace }}/BuildRoot/Library - if: inputs.build_android uses: actions/download-artifact@v4 with: - name: Android-${{ matrix.arch }}-sdk + name: Android-i686-sdk path: ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform - - if: inputs.build_android uses: actions/download-artifact@v4 with: - name: Android-${{ matrix.arch }}-ds2 + name: Android-i686-ds2 path: ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/Library + - if: inputs.build_android + run: | + New-Item -ItemType Directory -Path ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/Dispatch.swiftmodule -Force + Move-Item ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/Android/i686/Dispatch.swiftdoc ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/Dispatch.swiftmodule/i686-unknown-linux-android.swiftdoc + Move-Item ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/Android/i686/Dispatch.swiftmodule ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/Dispatch.swiftmodule/i686-unknown-linux-android.swiftmodule + + Move-Item -Path "${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/lib*.so" -Destination ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/i686/ + Move-Item -Path "${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/lib*.a" -Destination ${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk/usr/lib/swift/android/i686/ - if: inputs.build_android uses: actions/checkout@v4.2.2 @@ -4150,7 +4196,7 @@ jobs: with: host_arch: ${{ inputs.build_arch }} components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64' - arch: ${{ matrix.arch }} + arch: ${{ inputs.build_arch }} winsdk: ${{ env.WORKAROUND_WINDOWS_SDK_VERSION }} - if: inputs.build_android && inputs.signed @@ -4183,22 +4229,25 @@ jobs: -p:BaseOutputPath=${{ github.workspace }}\BinaryCache\installer\ ` -p:Configuration=Release ` -p:SignOutput=${{ inputs.signed }} ` - -p:ANDROID_INCLUDE_DS2=${{ inputs.build_android }} ` + -p:ANDROID_INCLUDE_DS2=true ` -p:CERTIFICATE=${env:CERTIFICATE} ` -p:PASSPHRASE=${{ secrets.PASSPHRASE }} ` - -p:PLATFORM_ROOT=${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform ` - -p:SDK_ROOT=${{ github.workspace }}/BuildRoot/Library/Developer/Platforms/Android.platform/Developer/SDKs/Android.sdk ` + -p:ImageRoot=${{ github.workspace }}/BuildRoot/Library ` -p:ProductVersion=${{ inputs.swift_version }} ` - -p:ProductArchitecture=${{ matrix.msarch }} ` - ${{ github.workspace }}/SourceCache/swift-installer-scripts/platforms/Windows/sdk/drd/sdk.wixproj + -p:AndroidArchitectures="`"x86_64;aarch64;i686;armv7`"" ` + ${{ github.workspace }}/SourceCache/swift-installer-scripts/platforms/Windows/platforms/android/android.wixproj - if: inputs.build_android uses: actions/upload-artifact@v4 with: - name: Android-${{ matrix.arch }}-sdk-msi + name: Android-platform-msi path: | - ${{ github.workspace }}/BinaryCache/installer/Release/${{ matrix.msarch }}/sdk.android.${{ matrix.msarch }}.msi - ${{ github.workspace }}/BinaryCache/installer/Release/${{ matrix.msarch }}/sdk.android.${{ matrix.msarch }}.cab + ${{ github.workspace }}/BinaryCache/installer/Release/${{ inputs.build_arch }}/android.msi + ${{ github.workspace }}/BinaryCache/installer/Release/${{ inputs.build_arch }}/android.cab + ${{ github.workspace }}/BinaryCache/installer/Release/${{ inputs.build_arch }}/sdk.android.arm64.cab + ${{ github.workspace }}/BinaryCache/installer/Release/${{ inputs.build_arch }}/sdk.android.arm.cab + ${{ github.workspace }}/BinaryCache/installer/Release/${{ inputs.build_arch }}/sdk.android.x64.cab + ${{ github.workspace }}/BinaryCache/installer/Release/${{ inputs.build_arch }}/sdk.android.x86.cab installer: # TODO: Build this on macOS or make an equivalent Mac-only job