mirror of
https://github.com/actions/runner-images.git
synced 2026-01-03 16:49:11 +08: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
@@ -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"
|
||||
|
||||
# Android NDK root path.
|
||||
$ndk_root = "C:\Program Files (x86)\Android\android-sdk\ndk-bundle"
|
||||
Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
|
||||
-AndroidSDKRootPath $sdkRoot `
|
||||
-AndroidPackages $androidToolset.platform_list `
|
||||
-PrefixPackageName "platforms;"
|
||||
|
||||
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
|
||||
} else {
|
||||
Write-Host "NDK is not installed at path $ndk_root"
|
||||
exit 1
|
||||
}
|
||||
Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
|
||||
-AndroidSDKRootPath $sdkRoot `
|
||||
-AndroidPackages $androidToolset.build_tools `
|
||||
-PrefixPackageName "build-tools;"
|
||||
|
||||
Pop-Location
|
||||
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.
|
||||
$ndkRoot = "C:\Program Files (x86)\Android\android-sdk\ndk-bundle"
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user