From 3626724660da199ce77e57d4cacb23e2b14e194e Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Thu, 13 Mar 2025 10:58:33 -0400 Subject: [PATCH 1/3] Add android-build --- .github/workflows/swift_package_test.yml | 31 ++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/.github/workflows/swift_package_test.yml b/.github/workflows/swift_package_test.yml index b61a8f3..ac96749 100644 --- a/.github/workflows/swift_package_test.yml +++ b/.github/workflows/swift_package_test.yml @@ -60,6 +60,14 @@ on: type: boolean description: "Boolean to enable running build in windows docker container. Defaults to true" default: true + enable_android_checks: + type: boolean + description: "Boolean to enable android testing. Defaults to false" + default: false + android_exclude_swift_versions: + type: string + description: "Exclude Android Swift version list (JSON)" + default: "[{\"swift_version\": \"\"}]" needs_token: type: boolean description: "Boolean to enable providing the GITHUB_TOKEN to downstream job." @@ -187,3 +195,26 @@ jobs: Import-Module $env:ChocolateyInstall\helpers\chocolateyProfile.psm1 RefreshEnv powershell.exe -NoLogo -File $env:TEMP\test-script\run.ps1; exit $LastExitCode + + android-build: + name: Android (${{ matrix.swift_version }} + if: ${{ inputs.enable_android_checks }} + runs-on: 'ubuntu-24.04' + strategy: + fail-fast: false + matrix: + swift_version: ['nightly-6.1'] + exclude: + - ${{ fromJson(inputs.android_exclude_swift_versions) }} + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Provide token + if: ${{ inputs.needs_token }} + run: | + echo "GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }}" >> $GITHUB_ENV + - name: Build / Test + uses: skiptools/swift-android-action@v2 + with: + swift-version: ${{ matrix.swift_version }} + From 656b9893d8c728a727f2385b638ed57e76c871d0 Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Thu, 13 Mar 2025 11:18:32 -0400 Subject: [PATCH 2/3] Add Android input options --- .github/workflows/swift_package_test.yml | 38 +++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/.github/workflows/swift_package_test.yml b/.github/workflows/swift_package_test.yml index ac96749..413ba53 100644 --- a/.github/workflows/swift_package_test.yml +++ b/.github/workflows/swift_package_test.yml @@ -64,6 +64,34 @@ on: type: boolean description: "Boolean to enable android testing. Defaults to false" default: false + android_copy_files: + type: string + description: "Additional files to copy to the Android emulator for testing" + default: "" + android_cores: + type: number + description: "Number of cores to use for the Android emulator" + default: 2 + android_api_level: + type: number + description: "The API level of the Android emulator" + default: 30 + android_channel: + type: string + description: "Android channel to download the SDK components from - stable, beta, dev, canary" + default: "channel" + android_profile: + type: string + description: "Android emulator hardware profile used for creating the AVD" + default: "pixel" + android_target: + type: string + description: "Target of the Android system image" + default: "aosp_atd" + android_test_env: + type: string + description: "Android emulator test environment variables key=value" + default: "" android_exclude_swift_versions: type: string description: "Exclude Android Swift version list (JSON)" @@ -197,7 +225,7 @@ jobs: powershell.exe -NoLogo -File $env:TEMP\test-script\run.ps1; exit $LastExitCode android-build: - name: Android (${{ matrix.swift_version }} + name: Android (${{ matrix.swift_version }}) if: ${{ inputs.enable_android_checks }} runs-on: 'ubuntu-24.04' strategy: @@ -217,4 +245,12 @@ jobs: uses: skiptools/swift-android-action@v2 with: swift-version: ${{ matrix.swift_version }} + swift-build-flags: ${{ (contains(matrix.swift_version, 'nightly') && inputs.swift_nightly_flags) || inputs.swift_flags }} + copy-files: ${{ inputs.android_copy_files }} + android-cores: ${{ inputs.android_cores }} + android-api-level: ${{ inputs.android_api_level }} + android-channel: ${{ inputs.android_channel }} + android-profile: ${{ inputs.android_profile }} + android-target: ${{ inputs.android_target }} + android-test-env: ${{ inputs.android_test_env }} From be91e121fa63f424378e3442abe7f1ba4c691f10 Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Thu, 13 Mar 2025 11:21:23 -0400 Subject: [PATCH 3/3] Fix inputs.android_test_env pass-through to test-env; fix default channel --- .github/workflows/swift_package_test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/swift_package_test.yml b/.github/workflows/swift_package_test.yml index 413ba53..b4734fc 100644 --- a/.github/workflows/swift_package_test.yml +++ b/.github/workflows/swift_package_test.yml @@ -79,7 +79,7 @@ on: android_channel: type: string description: "Android channel to download the SDK components from - stable, beta, dev, canary" - default: "channel" + default: "canary" android_profile: type: string description: "Android emulator hardware profile used for creating the AVD" @@ -247,10 +247,10 @@ jobs: swift-version: ${{ matrix.swift_version }} swift-build-flags: ${{ (contains(matrix.swift_version, 'nightly') && inputs.swift_nightly_flags) || inputs.swift_flags }} copy-files: ${{ inputs.android_copy_files }} + test-env: ${{ inputs.android_test_env }} android-cores: ${{ inputs.android_cores }} android-api-level: ${{ inputs.android_api_level }} android-channel: ${{ inputs.android_channel }} android-profile: ${{ inputs.android_profile }} android-target: ${{ inputs.android_target }} - android-test-env: ${{ inputs.android_test_env }}