| swift-version | Swift toolchain version to install. Accepts release tags (e.g. "6.3"), the aliases "latest" / "snapshot" / "latest-6.2", nightly identifiers like "nightly-main" or "nightly-6.3", and explicit dev snapshots such as "6.3-DEVELOPMENT-SNAPSHOT-2025-12-07-a". | yes | latest |
| ndk-version | Android NDK version selector for Swift 6.2 and newer (e.g. "27", "27.0", "27.2.12479018", or "latest"). Leave empty to keep the runner default. | no | "" |
| swift-branch | Override for the swift.org download branch (e.g. "swift-6.3-release", "development"). When empty the branch is inferred from `swift-version`. | yes | "" |
| package-path | Path to the Swift package to build, relative to the workspace root. | yes | . |
| swift-build-flags | Extra arguments appended to every `swift build` invocation. | yes | "" |
| swift-configuration | Build configuration: "debug" or "release". | yes | debug |
| swift-test-flags | Extra arguments forwarded to the test-runner binaries on the emulator. | yes | "" |
| android-emulator-test-folder | Absolute on-device folder used to stage and execute the test bundle inside the emulator. | yes | /data/local/tmp/swift-android-tests |
| test-env | Whitespace-separated `KEY=VALUE` pairs exported into the test process on the emulator. | yes | "" |
| android-emulator-options | Extra CLI flags passed through to the Android emulator process. | yes | -no-window -noaudio -no-boot-anim |
| android-emulator-boot-timeout | Maximum number of seconds to wait for the emulator to finish booting before giving up. | yes | 600 |
| free-disk-space | When "true", deletes a curated set of large pre-installed runner tools (Xcodes, dotnet, chromium, etc.) prior to launching the emulator to recover disk space. | no | false |
| build-package | When "true", builds the Swift package after installing the toolchain/SDK. Set to "false" to only stage the environment. | yes | true |
| build-tests | When "true", `--build-tests` is added to the build so test binaries are produced. Set to "false" to skip building tests. | yes | true |
| run-tests | When "true", launches the emulator and executes the built test binaries. Set to "false" to stop after the build step. | yes | true |
| copy-files | Additional files or directories (relative to `package-path`) copied next to the test binaries on the emulator. | yes | "" |
| android-cores | Number of CPU cores allocated to the Android emulator instance. | yes | 2 |
| android-api-level | Android API level that the emulator boots against (also drives the compile SDK target by default). | yes | 28 |
| compile-sdk-api-level | Override for the API level baked into the Swift Android SDK build triple. Falls back to `android-api-level` when unset. | no | "" |
| android-channel | SDK Manager component channel used by the emulator runner ("stable", "beta", "dev", or "canary"). | no | stable |
| android-profile | Hardware profile name used when creating the AVD (e.g. "pixel"). Empty selects the runner default. | no | "" |
| android-target | System-image target for the AVD (e.g. "default", "google_apis", "aosp_atd"). | no | default |
| installed-sdk | Triple of a Swift Android SDK that is already installed on the runner; when set, the action skips downloading an SDK. | no | "" |
| installed-swift | Path to a Swift host toolchain that is already installed; when set, the action skips downloading the host toolchain. | no | "" |
| custom-sdk-url | Direct URL to a custom Swift Android SDK artifactbundle archive. Requires `installed-sdk` and `custom-sdk-id` to also be supplied. | no | "" |
| custom-sdk-id | Artifact identifier used when installing the SDK referenced by `custom-sdk-url`. | no | "" |