mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-28 13:41:18 +00:00
59 lines
2.5 KiB
YAML
59 lines
2.5 KiB
YAML
name: Setup Android toolchain
|
|
description: Set up the pinned Java and Android SDK toolchain used by OpenClaw builds.
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- name: Setup Java
|
|
uses: actions/setup-java@ad2b38190b15e4d6bdf0c97fb4fca8412226d287 # v5
|
|
with:
|
|
distribution: temurin
|
|
# Keep sdkmanager on the stable JDK path for Linux CI runners.
|
|
java-version: 17
|
|
cache: gradle
|
|
cache-dependency-path: |
|
|
apps/android/**/*.gradle*
|
|
apps/android/**/gradle-wrapper.properties
|
|
apps/android/gradle/libs.versions.toml
|
|
|
|
- name: Cache Android SDK
|
|
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5
|
|
with:
|
|
path: ~/.android-sdk
|
|
key: ${{ runner.os }}-android-sdk-v1-cmdline-14742923-platform-37.0-build-tools-36.0.0
|
|
restore-keys: |
|
|
${{ runner.os }}-android-sdk-v1-
|
|
|
|
- name: Setup Android SDK command-line tools
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
ANDROID_SDK_ROOT="$HOME/.android-sdk"
|
|
CMDLINE_TOOLS_VERSION="14742923"
|
|
ARCHIVE="commandlinetools-linux-${CMDLINE_TOOLS_VERSION}_latest.zip"
|
|
URL="https://dl.google.com/android/repository/${ARCHIVE}"
|
|
|
|
if [[ ! -x "${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager" ]]; then
|
|
mkdir -p "${ANDROID_SDK_ROOT}/cmdline-tools"
|
|
curl -fsSL --connect-timeout 10 --max-time 300 "${URL}" -o "${RUNNER_TEMP}/${ARCHIVE}"
|
|
rm -rf "${ANDROID_SDK_ROOT}/cmdline-tools/latest"
|
|
unzip -q "${RUNNER_TEMP}/${ARCHIVE}" -d "${ANDROID_SDK_ROOT}/cmdline-tools"
|
|
mv "${ANDROID_SDK_ROOT}/cmdline-tools/cmdline-tools" "${ANDROID_SDK_ROOT}/cmdline-tools/latest"
|
|
fi
|
|
|
|
echo "ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT}" >> "${GITHUB_ENV}"
|
|
echo "ANDROID_HOME=${ANDROID_SDK_ROOT}" >> "${GITHUB_ENV}"
|
|
echo "${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin" >> "${GITHUB_PATH}"
|
|
echo "${ANDROID_SDK_ROOT}/platform-tools" >> "${GITHUB_PATH}"
|
|
|
|
- name: Install Android SDK packages
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
# sdkmanager closes stdin after accepting every license, which gives yes SIGPIPE.
|
|
# Preserve sdkmanager's status so a real license failure still stops the job.
|
|
yes | sdkmanager --sdk_root="${ANDROID_SDK_ROOT}" --licenses >/dev/null || [[ "${PIPESTATUS[1]}" -eq 0 ]]
|
|
sdkmanager --sdk_root="${ANDROID_SDK_ROOT}" --install \
|
|
"platform-tools" \
|
|
"platforms;android-37.0" \
|
|
"build-tools;36.0.0"
|