Android SDK setup for GitHub Actions
Find a file
2023-11-21 22:35:25 +02:00
.github [Issue #384] Implement silent licence agreement. 2023-11-21 22:11:35 +02:00
.idea [Issue #384] Implement silent licence agreement. 2023-11-21 22:11:35 +02:00
.vscode Make index.js executable 2020-01-03 21:20:26 +01:00
__tests__ Run prettier, to pass format-check 2020-08-11 19:25:29 +02:00
dist Change "Licence" to "License" 2023-11-21 22:35:25 +02:00
src Change "Licence" to "License" 2023-11-21 22:35:25 +02:00
.eslintignore Initial changes for setup-android 2020-07-14 17:41:00 +02:00
.eslintrc.json Don't eslint warn about English text in string literals 2023-11-21 21:35:16 +02:00
.gitignore Initial changes for setup-android 2020-07-14 17:41:00 +02:00
.prettierignore Initial changes for setup-android 2020-07-14 17:41:00 +02:00
.prettierrc.json Initial changes for setup-android 2020-07-14 17:41:00 +02:00
action.yml Change "Licence" to "License" 2023-11-21 22:35:25 +02:00
jest.config.js Initial changes for setup-android 2020-07-14 17:41:00 +02:00
LICENSE Create LICENSE 2020-08-11 20:48:49 +02:00
matchers.json Move all matchers to a single file 2020-08-26 17:43:31 +02:00
package-lock.json Update npm dependencies 2023-11-21 21:27:27 +02:00
package.json [Issue #192] Accept cmdline-tools-version input parameter 2023-11-21 21:18:33 +02:00
README.md Change "Licence" to "License" 2023-11-21 22:35:25 +02:00
tsconfig.json tsconfig: set moduleResolution 2021-07-17 18:55:57 +02:00

setup-android

Build & Test

This action sets up the Android SDK tools by:

  • Downloading the SDK commandline tools, if the current version (11.0) is not found in either $ANDROID_SDK_ROOT or $HOME/.android/sdk.
  • Accepting the SDK licenses.
  • Installing tools and platform-tools.
  • Adding platform-tools (contains adb) and cmdline-tools/11.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@v4

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

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

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

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 10406996 (short version 11.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@v3
  with:
    cmdline-tools-version: 8512546

Version table

Short version Long version
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 (unsurprisingly) 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