Skip to content
Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

setup-android

Build & Test

This action sets up the Android SDK tools by:

  • Downloading the SDK commandline tools, if the current version (16.0) is not found in either $ANDROID_SDK_ROOT or $HOME/.android/sdk.
  • Accepting the SDK licenses.
  • Installing platform-tools.
  • Adding platform-tools (contains adb) and cmdline-tools/16.0/bin (contains sdkmanager) to $PATH.
  • Setting up problem matchers.

On Windows 2016 runners, this action also checks if $ANDROID_SDK_ROOT path contains spaces. If it does - it moves SDK to a path without spaces. This is needed because spaces are highly problematic:

C:\windows\system32\cmd.exe /D /S /C ""C:\Program Files (x86)\Android\android-sdk\cmdline-tools\3.0\bin\sdkmanager.bat" --licenses"
Error: Could not find or load main class Files

Usage

See action.yml

Basic

steps:
- uses: actions/checkout@v7

- name: Set up JDK 17
  uses: actions/setup-java@v6
  with:
    java-version: '17'
    distribution: 'temurin'

- name: Setup Android SDK
  uses: android-actions/setup-android@v4

- name: Build SampleApplication
  run: ./gradlew --no-daemon build

Additional packages

Input parameter packages controls which packages this action will install from Android SDK.

Default value is platform-tools, supply an empty string to skip installing additional packages.

Additional packages can be installed at a later time by calling sdkmanager manually.

- name: Setup Android SDK
  uses: android-actions/setup-android@v4
  with:
    packages: ''

# ...

- run: sdkmanager platform-tools

The deprecated tools package

Google no longer serves the tools package, see tools#tools-sdk. Asking for it fails with Failed to find package 'tools', so it is no longer part of the default value of packages. If it is requested explicitly, this action skips it with a warning rather than failing the build.

Most of what tools provided now lives in the command line tools, which this action installs and adds to $PATH regardless of the packages input, so these need no install step at all:

apkanalyzer avdmanager lint screenshot2 sdkmanager retrace resourceshrinker profgen d8 r8

The emulator was split out of tools into its own package, request it explicitly if you need it:

- name: Setup Android SDK
  uses: android-actions/setup-android@v4
  with:
    packages: 'platform-tools emulator'

The remaining tools contents have no replacement in the current SDK: android was superseded by sdkmanager and avdmanager, ProGuard by R8, and monitor, ddms, monkeyrunner and uiautomatorviewer were dropped without one.

SDK Version selection

Command line tools are versioned using two variables - short and long. Long one is the build number, used in the zip URL, short one is the human friendly version name.

By default, setup-android installs version 15859902 (short version 22.0).

To install a different version, call setup-android with desired long version as the input parameter cmdline-tools-version:

- name: Setup Android SDK
  uses: android-actions/setup-android@v4
  with:
    cmdline-tools-version: 8512546

Version table

Short version Long version
22.0 15859902
20.0 14742923
16.0 12266719
13.0 11479570
12.0 11076708
11.0 10406996
10.0 9862592
9.0 9477386
8.0 9123335
7.0 8512546

Current cmdline tools version can be found at https://developer.android.com/studio#command-line-tools-only

Android SDK Licenses

Android SDK is not public domain software, it comes with a license.

Input parameter accept-android-sdk-licenses decides if Android SDK licenses should be agreed to on behalf of the user of this action. Default option is 'yes', because otherwise SDK is unusable until said licenses are agreed to.

licenses are quite long, to prevent a wall of text in the action output, licenses can be agreed to silently. Input parameter log-accepted-android-sdk-licenses controls whether license texts should be printed or omitted from the text output. Defaults to 'true'.

Thanks

Based on the project android-problem-matchers-action from @jonasb

About

Android SDK setup for GitHub Actions

Topics

Resources

Stars

301 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages