mirror of
https://github.com/actions/runner-images-sangeeth.git
synced 2025-12-19 00:06:45 +00:00
committed by
GitHub
parent
aa0de6b9cc
commit
705a38a481
@@ -24,10 +24,19 @@ function filter_components_by_version {
|
||||
done
|
||||
}
|
||||
|
||||
function get_full_ndk_version {
|
||||
majorVersion=$1
|
||||
|
||||
ndkFullVersion=$($SDKMANAGER --list | grep "ndk;${majorVersion}.*" | awk '{gsub("ndk;", ""); print $1}' | sort -V | tail -n1)
|
||||
|
||||
echo "$ndkFullVersion"
|
||||
}
|
||||
|
||||
# Set env variable for SDK Root (https://developer.android.com/studio/command-line/variables)
|
||||
ANDROID_ROOT=/usr/local/lib/android
|
||||
ANDROID_SDK_ROOT=${ANDROID_ROOT}/sdk
|
||||
ANDROID_NDK_ROOT=${ANDROID_SDK_ROOT}/ndk-bundle
|
||||
SDKMANAGER=${ANDROID_SDK_ROOT}/tools/bin/sdkmanager
|
||||
echo "ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT}" | tee -a /etc/environment
|
||||
|
||||
# ANDROID_HOME is deprecated, but older versions of Gradle rely on it
|
||||
@@ -48,11 +57,11 @@ rm -f android-sdk.zip
|
||||
|
||||
if isUbuntu20 ; then
|
||||
# Sdk manager doesn't work with Java > 8, set version 8 explicitly
|
||||
sed -i "2i export JAVA_HOME=${JAVA_HOME_8_X64}" /usr/local/lib/android/sdk/tools/bin/sdkmanager
|
||||
sed -i "2i export JAVA_HOME=${JAVA_HOME_8_X64}" "$SDKMANAGER"
|
||||
fi
|
||||
|
||||
# Check sdk manager installation
|
||||
/usr/local/lib/android/sdk/tools/bin/sdkmanager --list 1>/dev/null
|
||||
${SDKMANAGER} --list 1>/dev/null
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
echo "Android SDK manager was installed"
|
||||
@@ -66,23 +75,33 @@ minimumPlatformVersion=$(get_toolset_value '.android.platform_min_version')
|
||||
extras=$(get_toolset_value '.android.extra_list[]|"extras;" + .')
|
||||
addons=$(get_toolset_value '.android.addon_list[]|"add-ons;" + .')
|
||||
additional=$(get_toolset_value '.android.additional_tools[]')
|
||||
ANDROID_NDK_MAJOR_LTS=($(get_toolset_value '.android.ndk.lts'))
|
||||
ndkLTSFullVersion=$(get_full_ndk_version $ANDROID_NDK_MAJOR_LTS)
|
||||
|
||||
# Install the following SDKs and build tools, passing in "y" to accept licenses.
|
||||
components=( "${extras[@]}" "${addons[@]}" "${additional[@]}" )
|
||||
components=("${extras[@]}" "${addons[@]}" "${additional[@]}" "ndk;$ndkLTSFullVersion")
|
||||
if isUbuntu20 ; then
|
||||
ANDROID_NDK_MAJOR_LATEST=($(get_toolset_value '.android.ndk.latest'))
|
||||
ndkLatestFullVersion=$(get_full_ndk_version $ANDROID_NDK_MAJOR_LATEST)
|
||||
components+=("ndk;$ndkLatestFullVersion")
|
||||
fi
|
||||
|
||||
# This changes were added due to incompatibility with android ndk-bundle (ndk;22.0.7026061).
|
||||
# Link issue virtual-environments: https://github.com/actions/virtual-environments/issues/2481
|
||||
# Link issue xamarin-android: https://github.com/xamarin/xamarin-android/issues/5526
|
||||
ln -s $ANDROID_SDK_ROOT/ndk/21.3.6528147 $ANDROID_NDK_ROOT
|
||||
ln -s $ANDROID_SDK_ROOT/ndk/$ndkLTSFullVersion $ANDROID_NDK_ROOT
|
||||
|
||||
availablePlatforms=($(${ANDROID_SDK_ROOT}/tools/bin/sdkmanager --list | sed -n '/Available Packages:/,/^$/p' | grep "platforms;android-" | cut -d"|" -f 1))
|
||||
allBuildTools=($(${ANDROID_SDK_ROOT}/tools/bin/sdkmanager --list | grep "build-tools;" | cut -d"|" -f 1 | sort -u))
|
||||
if isUbuntu20; then
|
||||
echo "ANDROID_NDK_LATEST_HOME=$ANDROID_SDK_ROOT/ndk/$ndkLatestFullVersion" | tee -a /etc/environment
|
||||
fi
|
||||
|
||||
availablePlatforms=($($SDKMANAGER --list | sed -n '/Available Packages:/,/^$/p' | grep "platforms;android-" | cut -d"|" -f 1))
|
||||
allBuildTools=($($SDKMANAGER --list | grep "build-tools;" | cut -d"|" -f 1 | sort -u))
|
||||
availableBuildTools=$(echo ${allBuildTools[@]//*rc[0-9]/})
|
||||
|
||||
filter_components_by_version $minimumPlatformVersion "${availablePlatforms[@]}"
|
||||
filter_components_by_version $minimumBuildToolVersion "${availableBuildTools[@]}"
|
||||
|
||||
echo "y" | ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager ${components[@]}
|
||||
echo "y" | $SDKMANAGER ${components[@]}
|
||||
|
||||
# Add required permissions
|
||||
chmod -R a+rwx ${ANDROID_SDK_ROOT}
|
||||
|
||||
Reference in New Issue
Block a user