mirror of
https://github.com/actions/runner-images.git
synced 2025-12-17 15:20:11 +00:00
committed by
GitHub
parent
aa0de6b9cc
commit
705a38a481
@@ -24,10 +24,19 @@ function filter_components_by_version {
|
|||||||
done
|
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)
|
# Set env variable for SDK Root (https://developer.android.com/studio/command-line/variables)
|
||||||
ANDROID_ROOT=/usr/local/lib/android
|
ANDROID_ROOT=/usr/local/lib/android
|
||||||
ANDROID_SDK_ROOT=${ANDROID_ROOT}/sdk
|
ANDROID_SDK_ROOT=${ANDROID_ROOT}/sdk
|
||||||
ANDROID_NDK_ROOT=${ANDROID_SDK_ROOT}/ndk-bundle
|
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
|
echo "ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT}" | tee -a /etc/environment
|
||||||
|
|
||||||
# ANDROID_HOME is deprecated, but older versions of Gradle rely on it
|
# ANDROID_HOME is deprecated, but older versions of Gradle rely on it
|
||||||
@@ -48,11 +57,11 @@ rm -f android-sdk.zip
|
|||||||
|
|
||||||
if isUbuntu20 ; then
|
if isUbuntu20 ; then
|
||||||
# Sdk manager doesn't work with Java > 8, set version 8 explicitly
|
# 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
|
fi
|
||||||
|
|
||||||
# Check sdk manager installation
|
# Check sdk manager installation
|
||||||
/usr/local/lib/android/sdk/tools/bin/sdkmanager --list 1>/dev/null
|
${SDKMANAGER} --list 1>/dev/null
|
||||||
if [ $? -eq 0 ]
|
if [ $? -eq 0 ]
|
||||||
then
|
then
|
||||||
echo "Android SDK manager was installed"
|
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;" + .')
|
extras=$(get_toolset_value '.android.extra_list[]|"extras;" + .')
|
||||||
addons=$(get_toolset_value '.android.addon_list[]|"add-ons;" + .')
|
addons=$(get_toolset_value '.android.addon_list[]|"add-ons;" + .')
|
||||||
additional=$(get_toolset_value '.android.additional_tools[]')
|
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[@]}" "ndk;$ndkLTSFullVersion")
|
||||||
components=( "${extras[@]}" "${addons[@]}" "${additional[@]}" )
|
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).
|
# 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 virtual-environments: https://github.com/actions/virtual-environments/issues/2481
|
||||||
# Link issue xamarin-android: https://github.com/xamarin/xamarin-android/issues/5526
|
# 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))
|
if isUbuntu20; then
|
||||||
allBuildTools=($(${ANDROID_SDK_ROOT}/tools/bin/sdkmanager --list | grep "build-tools;" | cut -d"|" -f 1 | sort -u))
|
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]/})
|
availableBuildTools=$(echo ${allBuildTools[@]//*rc[0-9]/})
|
||||||
|
|
||||||
filter_components_by_version $minimumPlatformVersion "${availablePlatforms[@]}"
|
filter_components_by_version $minimumPlatformVersion "${availablePlatforms[@]}"
|
||||||
filter_components_by_version $minimumBuildToolVersion "${availableBuildTools[@]}"
|
filter_components_by_version $minimumBuildToolVersion "${availableBuildTools[@]}"
|
||||||
|
|
||||||
echo "y" | ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager ${components[@]}
|
echo "y" | $SDKMANAGER ${components[@]}
|
||||||
|
|
||||||
# Add required permissions
|
# Add required permissions
|
||||||
chmod -R a+rwx ${ANDROID_SDK_ROOT}
|
chmod -R a+rwx ${ANDROID_SDK_ROOT}
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ Describe "Android" {
|
|||||||
$androidSdkManagerPackages = Get-AndroidPackages
|
$androidSdkManagerPackages = Get-AndroidPackages
|
||||||
[int]$platformMinVersion = Get-ToolsetValue "android.platform_min_version"
|
[int]$platformMinVersion = Get-ToolsetValue "android.platform_min_version"
|
||||||
[version]$buildToolsMinVersion = Get-ToolsetValue "android.build_tools_min_version"
|
[version]$buildToolsMinVersion = Get-ToolsetValue "android.build_tools_min_version"
|
||||||
|
[string]$ndkLTSVersion = Get-ToolsetValue "android.ndk.lts"
|
||||||
|
$ndkLTSFullVersion = (Get-ChildItem "/usr/local/lib/android/sdk/ndk/$ndkLTSVersion.*" | Select-Object -Last 1).Name
|
||||||
|
|
||||||
$platforms = (($androidSdkManagerPackages | Where-Object { "$_".StartsWith("platforms;") }) -replace 'platforms;', '' |
|
$platforms = (($androidSdkManagerPackages | Where-Object { "$_".StartsWith("platforms;") }) -replace 'platforms;', '' |
|
||||||
Where-Object { [int]$_.Split("-")[1] -ge $platformMinVersion } | Sort-Object { [int]$_.Split("-")[1] } -Unique |
|
Where-Object { [int]$_.Split("-")[1] -ge $platformMinVersion } | Sort-Object { [int]$_.Split("-")[1] } -Unique |
|
||||||
@@ -16,8 +18,17 @@ Describe "Android" {
|
|||||||
$buildTools,
|
$buildTools,
|
||||||
(Get-ToolsetValue "android.extra_list" | ForEach-Object { "extras/${_}" }),
|
(Get-ToolsetValue "android.extra_list" | ForEach-Object { "extras/${_}" }),
|
||||||
(Get-ToolsetValue "android.addon_list" | ForEach-Object { "add-ons/${_}" }),
|
(Get-ToolsetValue "android.addon_list" | ForEach-Object { "add-ons/${_}" }),
|
||||||
(Get-ToolsetValue "android.additional_tools" | ForEach-Object { "${_}" })
|
(Get-ToolsetValue "android.additional_tools" | ForEach-Object { "${_}" }),
|
||||||
) | ForEach-Object { $_ }
|
"ndk/$ndkLTSFullVersion"
|
||||||
|
)
|
||||||
|
|
||||||
|
[string]$ndkLatestVersion = Get-ToolsetValue "android.ndk.latest"
|
||||||
|
if ($ndkLatestVersion) {
|
||||||
|
$ndkLatestFullVersion = (Get-ChildItem "/usr/local/lib/android/sdk/ndk/$ndkLatestVersion.*" | Select-Object -Last 1).Name
|
||||||
|
$androidPackages += @("ndk/$ndkLatestFullVersion")
|
||||||
|
}
|
||||||
|
|
||||||
|
$androidPackages = $androidPackages | ForEach-Object { $_ }
|
||||||
|
|
||||||
BeforeAll {
|
BeforeAll {
|
||||||
$ANDROID_SDK_DIR = "/usr/local/lib/android/sdk"
|
$ANDROID_SDK_DIR = "/usr/local/lib/android/sdk"
|
||||||
@@ -38,7 +49,6 @@ Describe "Android" {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Context "Packages" {
|
Context "Packages" {
|
||||||
$testCases = $androidPackages | ForEach-Object { @{ PackageName = $_ } }
|
$testCases = $androidPackages | ForEach-Object { @{ PackageName = $_ } }
|
||||||
|
|
||||||
|
|||||||
@@ -106,10 +106,12 @@
|
|||||||
"cmake;3.6.4111459",
|
"cmake;3.6.4111459",
|
||||||
"cmake;3.10.2.4988404",
|
"cmake;3.10.2.4988404",
|
||||||
"patcher;v4",
|
"patcher;v4",
|
||||||
"ndk;21.3.6528147",
|
|
||||||
"platform-tools",
|
"platform-tools",
|
||||||
"cmdline-tools;latest"
|
"cmdline-tools;latest"
|
||||||
]
|
],
|
||||||
|
"ndk": {
|
||||||
|
"lts": "21"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"powershellModules": [
|
"powershellModules": [
|
||||||
{"name": "MarkdownPS"},
|
{"name": "MarkdownPS"},
|
||||||
|
|||||||
@@ -102,10 +102,12 @@
|
|||||||
"cmake;3.6.4111459",
|
"cmake;3.6.4111459",
|
||||||
"cmake;3.10.2.4988404",
|
"cmake;3.10.2.4988404",
|
||||||
"patcher;v4",
|
"patcher;v4",
|
||||||
"ndk;21.3.6528147",
|
|
||||||
"platform-tools",
|
"platform-tools",
|
||||||
"cmdline-tools;latest"
|
"cmdline-tools;latest"
|
||||||
]
|
],
|
||||||
|
"ndk": {
|
||||||
|
"lts": "21"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"powershellModules": [
|
"powershellModules": [
|
||||||
{"name": "MarkdownPS"},
|
{"name": "MarkdownPS"},
|
||||||
|
|||||||
@@ -85,10 +85,13 @@
|
|||||||
"additional_tools": [
|
"additional_tools": [
|
||||||
"cmake;3.10.2.4988404",
|
"cmake;3.10.2.4988404",
|
||||||
"patcher;v4",
|
"patcher;v4",
|
||||||
"ndk;21.3.6528147",
|
|
||||||
"platform-tools",
|
"platform-tools",
|
||||||
"cmdline-tools;latest"
|
"cmdline-tools;latest"
|
||||||
]
|
],
|
||||||
|
"ndk": {
|
||||||
|
"lts": "21",
|
||||||
|
"latest": "22"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"powershellModules": [
|
"powershellModules": [
|
||||||
{"name": "MarkdownPS"},
|
{"name": "MarkdownPS"},
|
||||||
|
|||||||
Reference in New Issue
Block a user