mirror of
https://github.com/actions/runner-images.git
synced 2025-12-16 06:40:32 +00:00
Implement Pester tests for Android SDKs (#1221)
* Add Android SDKs tests * Fix path to android helpers * Fix path to sdkmanager * Remove extra and add-ons tests * Add verbose option to sdkmanager * Add additional tools test * Fix extra and addons tests * Fix extra and addons android packages * Fix image templates
This commit is contained in:
committed by
GitHub
parent
b47ba413c9
commit
58f3ee85cb
@@ -509,6 +509,9 @@
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"environment_vars":[
|
||||
"TOOLSET_JSON_PATH={{user `toolset_json_path`}}"
|
||||
],
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Update-AndroidSDK.ps1"
|
||||
]
|
||||
|
||||
@@ -490,6 +490,9 @@
|
||||
},
|
||||
{
|
||||
"type": "powershell",
|
||||
"environment_vars":[
|
||||
"TOOLSET_JSON_PATH={{user `toolset_json_path`}}"
|
||||
],
|
||||
"scripts":[
|
||||
"{{ template_dir }}/scripts/Installers/Update-AndroidSDK.ps1"
|
||||
]
|
||||
|
||||
@@ -33,4 +33,5 @@ Export-ModuleMember -Function @(
|
||||
'Get-WhichTool'
|
||||
'Get-EnvironmentVariable'
|
||||
'Invoke-PesterTests'
|
||||
'Install-AndroidSDKPackages'
|
||||
)
|
||||
|
||||
@@ -463,3 +463,20 @@ function Extract-7Zip {
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
function Install-AndroidSDKPackages {
|
||||
Param
|
||||
(
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]$AndroidSDKManagerPath,
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]$AndroidSDKRootPath,
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string[]]$AndroidPackages,
|
||||
[string] $PrefixPackageName
|
||||
)
|
||||
|
||||
foreach ($package in $AndroidPackages) {
|
||||
& $AndroidSDKManagerPath --sdk_root=$AndroidSDKRootPath "$PrefixPackageName$package"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,82 +34,49 @@ Expand-Archive -Path .\android-sdk-licenses.zip -DestinationPath 'C:\Program Fil
|
||||
# run the updates.
|
||||
# keep newer versions in descending order
|
||||
|
||||
$sdk_root = "C:\Program Files (x86)\Android\android-sdk"
|
||||
# Get android content from toolset
|
||||
$androidToolset = (Get-ToolsetContent).android
|
||||
|
||||
Push-Location -Path $sdk.FullName
|
||||
$sdkRoot = "C:\Program Files (x86)\Android\android-sdk"
|
||||
$sdkManager = "$sdkRoot\tools\bin\sdkmanager.bat"
|
||||
|
||||
& '.\tools\bin\sdkmanager.bat' --sdk_root=$sdk_root `
|
||||
"platform-tools" `
|
||||
"platforms;android-30" `
|
||||
"platforms;android-29" `
|
||||
"platforms;android-28" `
|
||||
"platforms;android-27" `
|
||||
"platforms;android-26" `
|
||||
"platforms;android-25" `
|
||||
"platforms;android-24" `
|
||||
"platforms;android-23" `
|
||||
"platforms;android-22" `
|
||||
"platforms;android-21" `
|
||||
"platforms;android-19" `
|
||||
"build-tools;30.0.0" `
|
||||
"build-tools;29.0.3" `
|
||||
"build-tools;29.0.2" `
|
||||
"build-tools;29.0.1" `
|
||||
"build-tools;29.0.0" `
|
||||
"build-tools;28.0.3" `
|
||||
"build-tools;28.0.2" `
|
||||
"build-tools;28.0.1" `
|
||||
"build-tools;28.0.0" `
|
||||
"build-tools;27.0.3" `
|
||||
"build-tools;27.0.2" `
|
||||
"build-tools;27.0.1" `
|
||||
"build-tools;27.0.0" `
|
||||
"build-tools;26.0.3" `
|
||||
"build-tools;26.0.2" `
|
||||
"build-tools;26.0.1" `
|
||||
"build-tools;26.0.0" `
|
||||
"build-tools;25.0.3" `
|
||||
"build-tools;25.0.2" `
|
||||
"build-tools;25.0.1" `
|
||||
"build-tools;25.0.0" `
|
||||
"build-tools;24.0.3" `
|
||||
"build-tools;24.0.2" `
|
||||
"build-tools;24.0.1" `
|
||||
"build-tools;24.0.0" `
|
||||
"build-tools;23.0.3" `
|
||||
"build-tools;23.0.2" `
|
||||
"build-tools;23.0.1" `
|
||||
"build-tools;22.0.1" `
|
||||
"build-tools;21.1.2" `
|
||||
"build-tools;20.0.0" `
|
||||
"build-tools;19.1.0" `
|
||||
"extras;android;m2repository" `
|
||||
"extras;google;m2repository" `
|
||||
"extras;google;google_play_services" `
|
||||
"extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2" `
|
||||
"extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1" `
|
||||
"extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2" `
|
||||
"extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1" `
|
||||
"add-ons;addon-google_apis-google-24" `
|
||||
"add-ons;addon-google_apis-google-23" `
|
||||
"add-ons;addon-google_apis-google-22" `
|
||||
"add-ons;addon-google_apis-google-21" `
|
||||
"cmake;3.6.4111459" `
|
||||
"cmake;3.10.2.4988404" `
|
||||
"patcher;v4" `
|
||||
"ndk-bundle"
|
||||
& $sdkManager --sdk_root=$sdkRoot "platform-tools"
|
||||
|
||||
Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
|
||||
-AndroidSDKRootPath $sdkRoot `
|
||||
-AndroidPackages $androidToolset.platform_list `
|
||||
-PrefixPackageName "platforms;"
|
||||
|
||||
Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
|
||||
-AndroidSDKRootPath $sdkRoot `
|
||||
-AndroidPackages $androidToolset.build_tools `
|
||||
-PrefixPackageName "build-tools;"
|
||||
|
||||
Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
|
||||
-AndroidSDKRootPath $sdkRoot `
|
||||
-AndroidPackages $androidToolset.extra_list `
|
||||
-PrefixPackageName "extras;"
|
||||
|
||||
Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
|
||||
-AndroidSDKRootPath $sdkRoot `
|
||||
-AndroidPackages $androidToolset.addon_list `
|
||||
-PrefixPackageName "add-ons;"
|
||||
|
||||
Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
|
||||
-AndroidSDKRootPath $sdkRoot `
|
||||
-AndroidPackages $androidToolset.additional_tools
|
||||
|
||||
# Android NDK root path.
|
||||
$ndk_root = "C:\Program Files (x86)\Android\android-sdk\ndk-bundle"
|
||||
$ndkRoot = "C:\Program Files (x86)\Android\android-sdk\ndk-bundle"
|
||||
|
||||
if (Test-Path $ndk_root){
|
||||
setx ANDROID_HOME $sdk_root /M
|
||||
setx ANDROID_NDK_HOME $ndk_root /M
|
||||
setx ANDROID_NDK_PATH $ndk_root /M
|
||||
if (Test-Path $ndkRoot) {
|
||||
setx ANDROID_HOME $sdkRoot /M
|
||||
setx ANDROID_NDK_HOME $ndkRoot /M
|
||||
setx ANDROID_NDK_PATH $ndkRoot /M
|
||||
} else {
|
||||
Write-Host "NDK is not installed at path $ndk_root"
|
||||
exit 1
|
||||
}
|
||||
|
||||
Pop-Location
|
||||
Invoke-PesterTests -TestFile "Android"
|
||||
|
||||
|
||||
@@ -25,12 +25,12 @@ function Create-AndroidTableObject {
|
||||
}
|
||||
|
||||
function Get-AndroidSDKManagerPath {
|
||||
return Join-Path $env:ANDROID_HOME "tools" "bin" "sdkmanager.bat"
|
||||
return Join-Path $env:ANDROID_HOME "tools\bin\sdkmanager.bat"
|
||||
}
|
||||
|
||||
function Get-AndroidInstalledPackages {
|
||||
$androidSDKManagerPath = Get-AndroidSDKManagerPath
|
||||
$androidSDKManagerList = & $androidSDKManagerPath --list --include_obsolete
|
||||
$androidSDKManagerList = & $androidSDKManagerPath --list --include_obsolete --verbose
|
||||
$androidInstalledPackages = @()
|
||||
foreach($packageInfo in $androidSDKManagerList) {
|
||||
if($packageInfo -Match "Available Packages:") {
|
||||
|
||||
58
images/win/scripts/Tests/Android.Tests.ps1
Normal file
58
images/win/scripts/Tests/Android.Tests.ps1
Normal file
@@ -0,0 +1,58 @@
|
||||
Import-Module (Join-Path $PSScriptRoot "..\SoftwareReport\SoftwareReport.Android.psm1") -DisableNameChecking
|
||||
|
||||
Describe "Android SDK" {
|
||||
$androidToolset = (Get-ToolsetContent).android
|
||||
$androidInstalledPackages = Get-AndroidInstalledPackages
|
||||
|
||||
$platformTestCases = @()
|
||||
$platformList = $androidToolset.platform_list
|
||||
$platformList | ForEach-Object {
|
||||
$platformTestCases += @{ platformVersion = $_; installedPackages = $androidInstalledPackages }
|
||||
}
|
||||
|
||||
$buildToolsTestCases = @()
|
||||
$buildToolsList = $androidToolset.build_tools
|
||||
$buildToolsList | ForEach-Object {
|
||||
$buildToolsTestCases += @{ buildToolsVersion = $_; installedPackages = $androidInstalledPackages }
|
||||
}
|
||||
|
||||
$extraPackagesTestCases = @()
|
||||
$extraPackageList = $androidToolset.extra_list
|
||||
$extraPackageList | ForEach-Object {
|
||||
$extraPackagesTestCases += @{ extraPackage = $_; installedPackages = $androidInstalledPackages }
|
||||
}
|
||||
|
||||
$addonsTestCases = @()
|
||||
$addonsPackageList = $androidToolset.addon_list
|
||||
$addonsPackageList | ForEach-Object {
|
||||
$addonsTestCases += @{ addonPackage = $_; installedPackages = $androidInstalledPackages }
|
||||
}
|
||||
|
||||
$additionalToolsTestCases = @()
|
||||
$additionalToolsList = $androidToolset.additional_tools
|
||||
$additionalToolsList | ForEach-Object {
|
||||
$additionalToolsTestCases += @{ additionalToolVersion = $_; installedPackages = $androidInstalledPackages }
|
||||
}
|
||||
|
||||
It "Platform version <platformVersion> is installed" -TestCases $platformTestCases {
|
||||
"$installedPackages" | Should -Match "platforms;$platformVersion"
|
||||
}
|
||||
|
||||
It "Platform build tools <buildToolsVersion> is installed" -TestCases $buildToolsTestCases {
|
||||
"$installedPackages" | Should -Match "build-tools;$buildToolsVersion"
|
||||
}
|
||||
|
||||
if (Test-isWin19) {
|
||||
It "Extra package <extraPackage> is installed" -TestCases $extraPackagesTestCases {
|
||||
"$installedPackages" | Should -Match "extras;$extraPackage"
|
||||
}
|
||||
|
||||
It "Addon package <addonPackage> is installed" -TestCases $addonsTestCases {
|
||||
"$installedPackages" | Should -Match "add-ons;$addonPackage"
|
||||
}
|
||||
}
|
||||
|
||||
It "Additional tool <additionalToolVersion> is installed" -TestCases $additionalToolsTestCases {
|
||||
"$installedPackages" | Should -Match $additionalToolVersion
|
||||
}
|
||||
}
|
||||
@@ -113,5 +113,34 @@
|
||||
"4.4.0"
|
||||
]
|
||||
}
|
||||
],
|
||||
"android": {
|
||||
"platform_list": [
|
||||
"android-30", "android-29", "android-28", "android-27", "android-26", "android-25", "android-24", "android-23", "android-22", "android-21", "android-19"
|
||||
],
|
||||
"build_tools": [
|
||||
"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", "22.0.1", "21.1.2", "20.0.0", "19.1.0"
|
||||
],
|
||||
"extra_list": [
|
||||
"android;m2repository",
|
||||
"google;m2repository",
|
||||
"google;google_play_services",
|
||||
"m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2",
|
||||
"m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1",
|
||||
"m2repository;com;android;support;constraint;constraint-layout;1.0.2",
|
||||
"m2repository;com;android;support;constraint;constraint-layout;1.0.1"
|
||||
],
|
||||
"addon_list": [
|
||||
"addon-google_apis-google-24",
|
||||
"addon-google_apis-google-23",
|
||||
"addon-google_apis-google-22",
|
||||
"addon-google_apis-google-21"
|
||||
],
|
||||
"additional_tools": [
|
||||
"cmake;3.6.4111459",
|
||||
"cmake;3.10.2.4988404",
|
||||
"patcher;v4",
|
||||
"ndk-bundle"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -122,5 +122,34 @@
|
||||
"4.4.0"
|
||||
]
|
||||
}
|
||||
],
|
||||
"android": {
|
||||
"platform_list": [
|
||||
"android-30", "android-29", "android-28", "android-27", "android-26", "android-25", "android-24", "android-23", "android-22", "android-21", "android-19"
|
||||
],
|
||||
"build_tools": [
|
||||
"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", "22.0.1", "21.1.2", "20.0.0", "19.1.0"
|
||||
],
|
||||
"extra_list": [
|
||||
"android;m2repository",
|
||||
"google;m2repository",
|
||||
"google;google_play_services",
|
||||
"m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2",
|
||||
"m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1",
|
||||
"m2repository;com;android;support;constraint;constraint-layout;1.0.2",
|
||||
"m2repository;com;android;support;constraint;constraint-layout;1.0.1"
|
||||
],
|
||||
"addon_list": [
|
||||
"addon-google_apis-google-24",
|
||||
"addon-google_apis-google-23",
|
||||
"addon-google_apis-google-22",
|
||||
"addon-google_apis-google-21"
|
||||
],
|
||||
"additional_tools": [
|
||||
"cmake;3.6.4111459",
|
||||
"cmake;3.10.2.4988404",
|
||||
"patcher;v4",
|
||||
"ndk-bundle"
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user