Compare commits

...

7 Commits

Author SHA1 Message Date
Vilius Sutkus '89
138b5fb1cf Update dependencies in README.md 2026-09-17 12:45:50 -05:00
Christoph Grüninger
5ed526629f README.md Update other GitHub Actions in code samples
Old versions are using deprecated Node.js version
2026-09-17 12:43:05 -05:00
Vilius Sutkus '89
ca5c9e054e Upgrade Typescript to v6. Update other deps. 2026-09-17 12:32:13 -05:00
Vilius Sutkus '89
927cbf9b1d Update npm dependencies 2026-09-17 12:00:53 -05:00
dependabot[bot]
76ffd60ae0 Bump actions/checkout from 6 to 7
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-09-17 11:55:58 -05:00
Volodymyr
7731365548 Fix #537: stop installing the deprecated tools package
Google no longer serves the `tools` package: it is gone from
repository2-3.xml, so `sdkmanager tools` fails with
"Failed to find package 'tools'" and takes the whole action down with it.

- Drop `tools` from the default value of the `packages` input, leaving
  `platform-tools`. The command line tools that replaced it are already
  installed by this action, and there is no bare `cmdline-tools` package
  path to install instead (only versioned ones, e.g. `cmdline-tools;20.0`).
- Skip `tools` with a warning when it is requested explicitly, so the
  many workflows that pass `packages: 'tools platform-tools'` keep working
  instead of failing.
- Update the README accordingly.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 11:39:35 -05:00
Vilius Sutkus '89
4d90f94363 [2/2] Update setup-android version in README.md 2026-04-04 23:39:58 +03:00
10 changed files with 4015 additions and 2942 deletions

View File

@@ -9,7 +9,7 @@ jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v7
- name: Setup node 24 - name: Setup node 24
uses: actions/setup-node@v6 uses: actions/setup-node@v6
@@ -26,7 +26,7 @@ jobs:
format-check: format-check:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v7
- name: Setup node 24 - name: Setup node 24
uses: actions/setup-node@v6 uses: actions/setup-node@v6
@@ -40,7 +40,7 @@ jobs:
test: test:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v7
- name: Setup node 24 - name: Setup node 24
uses: actions/setup-node@v6 uses: actions/setup-node@v6
@@ -76,7 +76,7 @@ jobs:
- 9123335 - 9123335
- 8512546 - 8512546
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v7
- name: Setup node 24 - name: Setup node 24
uses: actions/setup-node@v6 uses: actions/setup-node@v6
@@ -105,7 +105,7 @@ jobs:
lint: lint:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v7
- name: Setup node 24 - name: Setup node 24
uses: actions/setup-node@v6 uses: actions/setup-node@v6

View File

@@ -31,7 +31,7 @@ jobs:
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v6 uses: actions/checkout@v7
# Initializes the CodeQL tools for scanning. # Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL - name: Initialize CodeQL

View File

@@ -20,11 +20,11 @@ jobs:
if: ${{ false }} if: ${{ false }}
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v7
with: with:
repository: daveol/SampleApplication repository: daveol/SampleApplication
- uses: actions/checkout@v6 - uses: actions/checkout@v7
with: with:
path: ./build/ path: ./build/

View File

@@ -5,7 +5,7 @@
This action sets up the Android SDK tools by: 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`. - 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. - Accepting the SDK licenses.
- Installing `tools` and `platform-tools`. - Installing `platform-tools`.
- Adding `platform-tools` (contains adb) and `cmdline-tools/16.0/bin` (contains sdkmanager) to `$PATH`. - Adding `platform-tools` (contains adb) and `cmdline-tools/16.0/bin` (contains sdkmanager) to `$PATH`.
- Setting up problem [matchers](/matchers.json). - Setting up problem [matchers](/matchers.json).
@@ -23,16 +23,16 @@ See [action.yml](action.yml)
## Basic ## Basic
```yaml ```yaml
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v7
- name: Set up JDK 17 - name: Set up JDK 17
uses: actions/setup-java@v4 uses: actions/setup-java@v6
with: with:
java-version: '17' java-version: '17'
distribution: 'temurin' distribution: 'temurin'
- name: Setup Android SDK - name: Setup Android SDK
uses: android-actions/setup-android@v3 uses: android-actions/setup-android@v4
- name: Build SampleApplication - name: Build SampleApplication
run: ./gradlew --no-daemon build run: ./gradlew --no-daemon build
@@ -41,21 +41,45 @@ steps:
## Additional packages ## Additional packages
Input parameter `packages` controls which packages this action will install from Android SDK. Input parameter `packages` controls which packages this action will install from Android SDK.
Default value is `tools platform-tools`, supply an empty string to skip installing additional packages. 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. Additional packages can be installed at a later time by calling sdkmanager manually.
```yaml ```yaml
- name: Setup Android SDK - name: Setup Android SDK
uses: android-actions/setup-android@v3 uses: android-actions/setup-android@v4
with: with:
packages: '' packages: ''
# ... # ...
- run: sdkmanager tools platform-tools - run: sdkmanager platform-tools
``` ```
## The deprecated `tools` package
Google no longer serves the `tools` package, see [tools#tools-sdk](https://developer.android.com/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:
```yaml
- 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](https://developer.android.com/build/shrink-code), and `monitor`, `ddms`, `monkeyrunner`
and `uiautomatorviewer` were dropped without one.
## SDK Version selection ## SDK Version selection
Command line tools are versioned using two variables - short and long. Command line tools are versioned using two variables - short and long.

View File

@@ -21,7 +21,7 @@ inputs:
packages: packages:
description: 'Additional packages to install' description: 'Additional packages to install'
required: false required: false
default: 'tools platform-tools' default: 'platform-tools'
runs: runs:
using: node24 using: node24

824
dist/index.js vendored

File diff suppressed because it is too large Load Diff

6035
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -25,24 +25,24 @@
"author": "daveol", "author": "daveol",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"@actions/core": "^3.0.0", "@actions/core": "^3.0.1",
"@actions/tool-cache": "^4.0.0" "@actions/tool-cache": "^4.0.0"
}, },
"devDependencies": { "devDependencies": {
"@types/jest": "^30.0.0", "@types/jest": "^30.0.0",
"@types/node": "^24.0.0", "@types/node": "^24.13.5",
"@typescript-eslint/eslint-plugin": "^8.57.2", "@typescript-eslint/eslint-plugin": "^8.70.0",
"@typescript-eslint/parser": "^8.57.2", "@typescript-eslint/parser": "^8.70.0",
"esbuild": "^0.28.0", "esbuild": "^0.28.2",
"eslint": "^10.1.0", "eslint": "^10.10.0",
"eslint-plugin-check-file": "^3.3.1", "eslint-plugin-check-file": "^3.3.2",
"eslint-plugin-jest": "^29.15.1", "eslint-plugin-jest": "^29.16.6",
"globals": "^17.4.0", "globals": "^17.12.0",
"jest": "^30.3.0", "jest": "^30.5.1",
"jest-circus": "^30.3.0", "jest-circus": "^30.3.0",
"js-yaml": "^4.1.0", "js-yaml": "^5.4.2",
"prettier": "^3.3.2", "prettier": "^3.9.7",
"ts-jest": "^29.1.5", "ts-jest": "^29.4.12",
"typescript": "^5.9.3" "typescript": "^6.0.3"
} }
} }

View File

@@ -175,6 +175,19 @@ async function run(): Promise<void> {
.filter(function (element, index, array) { .filter(function (element, index, array) {
return element return element
}) })
.filter(function (pkg) {
// The 'tools' package is deprecated and no longer served by Google,
// asking sdkmanager for it fails the whole action.
// Its replacement, cmdline-tools, is already installed by this action.
if (pkg === 'tools') {
core.warning(
"Skipping deprecated package 'tools', it is no longer available in the Android SDK repository. " +
'The command line tools installed by this action replace it, see https://developer.android.com/tools#tools-sdk'
)
return false
}
return true
})
for (const pkg of packages) { for (const pkg of packages) {
await callSdkManager(sdkManagerExe, pkg) await callSdkManager(sdkManagerExe, pkg)
} }

View File

@@ -6,6 +6,7 @@
"lib": [ "lib": [
"ES2024" "ES2024"
], ],
"types": ["node", "jest"],
"outDir": "./lib", "outDir": "./lib",
"rootDir": "./src", "rootDir": "./src",
"strict": true, "strict": true,