mirror of
https://github.com/actions/runner-images-sangeeth.git
synced 2025-12-20 06:29:50 +00:00
Merge pull request #1701 from dmitry-shibanov/v-dmshib/android-tools-dynamic-macOS
[macOS] Retrieve the list of Android packages for installing dynamically
This commit is contained in:
@@ -1,8 +1,26 @@
|
|||||||
#!/bin/bash -e
|
#!/bin/bash -e
|
||||||
source ~/utils/utils.sh
|
source ~/utils/utils.sh
|
||||||
|
|
||||||
ANDROID_PLATFORM_LIST=($(get_toolset_value '.android."platform-list"[]'))
|
function filter_components_by_version {
|
||||||
ANDROID_BUILD_TOOLS=($(get_toolset_value '.android."build-tools"[]'))
|
minimumVersion=$1
|
||||||
|
shift
|
||||||
|
toolsArr=("$@")
|
||||||
|
|
||||||
|
for item in ${toolsArr[@]}
|
||||||
|
do
|
||||||
|
# take the last argument after spliting string by ';'' and '-''
|
||||||
|
version=$(echo "${item##*[-;]}")
|
||||||
|
if verlte $minimumVersion $version
|
||||||
|
then
|
||||||
|
components+=($item)
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
components=()
|
||||||
|
|
||||||
|
ANDROID_PLATFORM=($(get_toolset_value '.android.platform_min_version'))
|
||||||
|
ANDROID_BUILD_TOOL=($(get_toolset_value '.android.build_tools_min_version'))
|
||||||
ANDROID_EXTRA_LIST=($(get_toolset_value '.android."extra-list"[]'))
|
ANDROID_EXTRA_LIST=($(get_toolset_value '.android."extra-list"[]'))
|
||||||
ANDROID_ADDON_LIST=($(get_toolset_value '.android."addon-list"[]'))
|
ANDROID_ADDON_LIST=($(get_toolset_value '.android."addon-list"[]'))
|
||||||
|
|
||||||
@@ -48,17 +66,14 @@ echo y | $SDKMANAGER "cmake;3.6.4111459"
|
|||||||
echo "Installing latest ndk..."
|
echo "Installing latest ndk..."
|
||||||
echo y | $SDKMANAGER "ndk-bundle"
|
echo y | $SDKMANAGER "ndk-bundle"
|
||||||
|
|
||||||
for platform_name in "${ANDROID_PLATFORM_LIST[@]}"
|
availablePlatforms=($(${ANDROID_HOME}/tools/bin/sdkmanager --list | grep "platforms;android-" | cut -d"|" -f 1 | sort -u))
|
||||||
do
|
filter_components_by_version $ANDROID_PLATFORM "${availablePlatforms[@]}"
|
||||||
echo "Installing platform $platform_name ..."
|
|
||||||
echo y | $SDKMANAGER "platforms;$platform_name"
|
|
||||||
done
|
|
||||||
|
|
||||||
for build_tools_version in "${ANDROID_BUILD_TOOLS[@]}"
|
allBuildTools=($(${ANDROID_HOME}/tools/bin/sdkmanager --list --include_obsolete | grep "build-tools;" | cut -d"|" -f 1 | sort -u))
|
||||||
do
|
availableBuildTools=$(echo ${allBuildTools[@]//*rc[0-9]/})
|
||||||
echo "Installing build tools $build_tools_version ..."
|
filter_components_by_version $ANDROID_BUILD_TOOL "${availableBuildTools[@]}"
|
||||||
echo y | $SDKMANAGER "build-tools;$build_tools_version"
|
|
||||||
done
|
echo "y" | ${ANDROID_HOME}/tools/bin/sdkmanager ${components[@]}
|
||||||
|
|
||||||
for extra_name in "${ANDROID_EXTRA_LIST[@]}"
|
for extra_name in "${ANDROID_EXTRA_LIST[@]}"
|
||||||
do
|
do
|
||||||
|
|||||||
@@ -91,4 +91,9 @@ get_latest_xcode_from_toolset() {
|
|||||||
|
|
||||||
get_default_xcode_from_toolset() {
|
get_default_xcode_from_toolset() {
|
||||||
echo $(get_toolset_value '.xcode.default')
|
echo $(get_toolset_value '.xcode.default')
|
||||||
|
}
|
||||||
|
|
||||||
|
verlte() {
|
||||||
|
sortedVersion=$(echo -e "$1\n$2" | sort -V | head -n1)
|
||||||
|
[ "$1" = "$sortedVersion" ]
|
||||||
}
|
}
|
||||||
@@ -28,6 +28,11 @@ function Get-AndroidInstalledPackages {
|
|||||||
return $androidInstalledPackages
|
return $androidInstalledPackages
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function Get-AndroidPackages {
|
||||||
|
$androidSDKManagerPath = Get-AndroidSDKManagerPath
|
||||||
|
$androidPackages = & $androidSDKManagerPath --list --verbose
|
||||||
|
return $androidPackages
|
||||||
|
}
|
||||||
|
|
||||||
function Build-AndroidTable {
|
function Build-AndroidTable {
|
||||||
Write-Host "Build-AndroidTable"
|
Write-Host "Build-AndroidTable"
|
||||||
|
|||||||
@@ -1,10 +1,22 @@
|
|||||||
Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
|
Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
|
||||||
Import-Module "$PSScriptRoot/../helpers/Tests.Helpers.psm1"
|
Import-Module "$PSScriptRoot/../helpers/Tests.Helpers.psm1"
|
||||||
|
Import-Module "$PSScriptRoot/../software-report/SoftwareReport.Android.psm1"
|
||||||
|
|
||||||
$os = Get-OSVersion
|
$os = Get-OSVersion
|
||||||
|
|
||||||
Describe "Android" {
|
Describe "Android" {
|
||||||
$androidNdkToolchains = @("mips64el-linux-android-4.9", "mipsel-linux-android-4.9")
|
$androidNdkToolchains = @("mips64el-linux-android-4.9", "mipsel-linux-android-4.9")
|
||||||
|
$androidSdkManagerPackages = Get-AndroidPackages
|
||||||
|
[int]$platformMinVersion = Get-ToolsetValue "android.platform_min_version"
|
||||||
|
[version]$buildToolsMinVersion = Get-ToolsetValue "android.build_tools_min_version"
|
||||||
|
|
||||||
|
$platforms = (($androidSdkManagerPackages | Where-Object { "$_".StartsWith("platforms;") }) -replace 'platforms;', '' |
|
||||||
|
Where-Object { [int]$_.Split("-")[1] -ge $platformMinVersion } | Sort-Object { [int]$_.Split("-")[1] } -Unique |
|
||||||
|
ForEach-Object { "platforms/${_}" })
|
||||||
|
|
||||||
|
$buildTools = (($androidSdkManagerPackages | Where-Object { "$_".StartsWith("build-tools;") }) -replace 'build-tools;', '' |
|
||||||
|
Where-Object { [version]$_ -ge $buildToolsMinVersion } | Sort-Object { [version]$_ } -Unique |
|
||||||
|
ForEach-Object { "build-tools/${_}" })
|
||||||
|
|
||||||
$androidPackages = @(
|
$androidPackages = @(
|
||||||
"tools",
|
"tools",
|
||||||
@@ -12,8 +24,8 @@ Describe "Android" {
|
|||||||
"tools/proguard",
|
"tools/proguard",
|
||||||
"ndk-bundle",
|
"ndk-bundle",
|
||||||
"cmake",
|
"cmake",
|
||||||
(Get-ToolsetValue "android.platform-list" | ForEach-Object { "platforms/${_}" }),
|
$platforms,
|
||||||
(Get-ToolsetValue "android.build-tools" | ForEach-Object { "build-tools/${_}" }),
|
$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/${_}" })
|
||||||
) | ForEach-Object { $_ }
|
) | ForEach-Object { $_ }
|
||||||
@@ -26,7 +38,7 @@ Describe "Android" {
|
|||||||
[Parameter(Mandatory=$true)]
|
[Parameter(Mandatory=$true)]
|
||||||
[string]$PackageName
|
[string]$PackageName
|
||||||
)
|
)
|
||||||
|
|
||||||
# Convert 'm2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1' ->
|
# Convert 'm2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1' ->
|
||||||
# 'm2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-beta1'
|
# 'm2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-beta1'
|
||||||
$PackageName = $PackageName.Replace(";", "/")
|
$PackageName = $PackageName.Replace(";", "/")
|
||||||
@@ -62,14 +74,14 @@ Describe "Android" {
|
|||||||
$rawContent = Get-Content $ndkBundlePath -Raw
|
$rawContent = Get-Content $ndkBundlePath -Raw
|
||||||
$rawContent | Should -BeLikeExactly "*Revision = 21.*"
|
$rawContent | Should -BeLikeExactly "*Revision = 21.*"
|
||||||
}
|
}
|
||||||
|
|
||||||
It "Android NDK version r18b is installed" {
|
It "Android NDK version r18b is installed" {
|
||||||
$ndk18BundlePath = Join-Path $ANDROID_SDK_DIR "ndk" "18.1.5063045" "source.properties"
|
$ndk18BundlePath = Join-Path $ANDROID_SDK_DIR "ndk" "18.1.5063045" "source.properties"
|
||||||
$rawContent = Get-Content $ndk18BundlePath -Raw
|
$rawContent = Get-Content $ndk18BundlePath -Raw
|
||||||
$rawContent | Should -BeLikeExactly "*Revision = 18.*"
|
$rawContent | Should -BeLikeExactly "*Revision = 18.*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
It "HAXM is installed" {
|
It "HAXM is installed" {
|
||||||
$haxmPath = Join-Path $ANDROID_SDK_DIR "extras" "intel" "Hardware_Accelerated_Execution_Manager" "silent_install.sh"
|
$haxmPath = Join-Path $ANDROID_SDK_DIR "extras" "intel" "Hardware_Accelerated_Execution_Manager" "silent_install.sh"
|
||||||
"$haxmPath -v" | Should -ReturnZeroExitCode
|
"$haxmPath -v" | Should -ReturnZeroExitCode
|
||||||
|
|||||||
@@ -170,12 +170,8 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"android": {
|
"android": {
|
||||||
"platform-list": [
|
"platform_min_version": "15",
|
||||||
"android-30", "android-29", "android-28", "android-27", "android-26", "android-25", "android-24", "android-23", "android-22", "android-21", "android-20", "android-19", "android-18", "android-17", "android-16", "android-15"
|
"build_tools_min_version": "17.0.0",
|
||||||
],
|
|
||||||
"build-tools": [
|
|
||||||
"30.0.1", "30.0.0", "29.0.3", "29.0.2", "29.0.1", "29.0.0", "28.0.3", "28.0.2", "28.0.1", "28.0.0", "27.0.3", "27.0.2", "27.0.1", "27.0.0", "26.0.3", "26.0.2", "26.0.1", "26.0.0", "25.0.3", "25.0.2", "25.0.1", "25.0.0", "24.0.3", "24.0.2", "24.0.1", "24.0.0", "23.0.3", "23.0.2", "23.0.1", "23.0.0", "22.0.1", "21.1.2", "20.0.0", "19.1.0", "17.0.0"
|
|
||||||
],
|
|
||||||
"extra-list": [
|
"extra-list": [
|
||||||
"android;m2repository", "google;m2repository", "google;google_play_services", "intel;Hardware_Accelerated_Execution_Manager", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout;1.0.0", "m2repository;com;android;support;constraint;constraint-layout;1.0.1", "m2repository;com;android;support;constraint;constraint-layout;1.0.2"
|
"android;m2repository", "google;m2repository", "google;google_play_services", "intel;Hardware_Accelerated_Execution_Manager", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout;1.0.0", "m2repository;com;android;support;constraint;constraint-layout;1.0.1", "m2repository;com;android;support;constraint;constraint-layout;1.0.2"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -191,12 +191,8 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"android": {
|
"android": {
|
||||||
"platform-list": [
|
"platform_min_version": "15",
|
||||||
"android-30", "android-29", "android-28", "android-27", "android-26", "android-25", "android-24", "android-23", "android-22", "android-21", "android-20", "android-19", "android-18", "android-17", "android-16", "android-15"
|
"build_tools_min_version": "17.0.0",
|
||||||
],
|
|
||||||
"build-tools": [
|
|
||||||
"30.0.2", "30.0.1", "30.0.0", "29.0.3", "29.0.2", "29.0.1", "29.0.0", "28.0.3", "28.0.2", "28.0.1", "28.0.0", "27.0.3", "27.0.2", "27.0.1", "27.0.0", "26.0.3", "26.0.2", "26.0.1", "26.0.0", "25.0.3", "25.0.2", "25.0.1", "25.0.0", "24.0.3", "24.0.2", "24.0.1", "24.0.0", "23.0.3", "23.0.2", "23.0.1", "23.0.0", "22.0.1", "21.1.2", "20.0.0", "19.1.0", "17.0.0"
|
|
||||||
],
|
|
||||||
"extra-list": [
|
"extra-list": [
|
||||||
"android;m2repository", "google;m2repository", "google;google_play_services", "intel;Hardware_Accelerated_Execution_Manager", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout;1.0.0", "m2repository;com;android;support;constraint;constraint-layout;1.0.1", "m2repository;com;android;support;constraint;constraint-layout;1.0.2"
|
"android;m2repository", "google;m2repository", "google;google_play_services", "intel;Hardware_Accelerated_Execution_Manager", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout;1.0.0", "m2repository;com;android;support;constraint;constraint-layout;1.0.1", "m2repository;com;android;support;constraint;constraint-layout;1.0.2"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -100,12 +100,8 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"android": {
|
"android": {
|
||||||
"platform-list": [
|
"platform_min_version": "24",
|
||||||
"android-30", "android-29", "android-28", "android-27", "android-26", "android-25", "android-24"
|
"build_tools_min_version": "24.0.0",
|
||||||
],
|
|
||||||
"build-tools": [
|
|
||||||
"30.0.2", "30.0.1", "30.0.0", "29.0.3", "29.0.2", "29.0.1", "29.0.0", "28.0.3", "28.0.2", "28.0.1", "28.0.0", "27.0.3", "27.0.2", "27.0.1", "27.0.0", "26.0.3", "26.0.2", "26.0.1", "26.0.0", "25.0.3", "25.0.2", "25.0.1", "25.0.0", "24.0.3", "24.0.2", "24.0.1", "24.0.0"
|
|
||||||
],
|
|
||||||
"extra-list": [
|
"extra-list": [
|
||||||
"android;m2repository", "google;m2repository", "google;google_play_services", "intel;Hardware_Accelerated_Execution_Manager", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout;1.0.0", "m2repository;com;android;support;constraint;constraint-layout;1.0.1", "m2repository;com;android;support;constraint;constraint-layout;1.0.2"
|
"android;m2repository", "google;m2repository", "google;google_play_services", "intel;Hardware_Accelerated_Execution_Manager", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout;1.0.0", "m2repository;com;android;support;constraint;constraint-layout;1.0.1", "m2repository;com;android;support;constraint;constraint-layout;1.0.2"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -44,12 +44,8 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"android": {
|
"android": {
|
||||||
"platform-list": [
|
"platform_min_version": "27",
|
||||||
"android-30", "android-29", "android-28", "android-27"
|
"build_tools_min_version": "27.0.0",
|
||||||
],
|
|
||||||
"build-tools": [
|
|
||||||
"30.0.2", "30.0.1", "30.0.0", "29.0.3", "29.0.2", "29.0.1", "29.0.0", "28.0.3", "28.0.2", "28.0.1", "28.0.0", "27.0.3", "27.0.2", "27.0.1", "27.0.0"
|
|
||||||
],
|
|
||||||
"extra-list": [
|
"extra-list": [
|
||||||
"android;m2repository", "google;m2repository", "google;google_play_services", "intel;Hardware_Accelerated_Execution_Manager"
|
"android;m2repository", "google;m2repository", "google;google_play_services", "intel;Hardware_Accelerated_Execution_Manager"
|
||||||
],
|
],
|
||||||
|
|||||||
Reference in New Issue
Block a user