mirror of
https://github.com/actions/runner-images.git
synced 2025-12-14 22:05:17 +00:00
[Ubuntu] Migrate tests for Android to Pester (#2313)
* Add Pester tests for Android on Ubuntu * Minor fix * Move Get-AndroidPackages to common helpers * Minor fix * Delete Android test name for invoke_tests script
This commit is contained in:
committed by
GitHub
parent
6245d40db7
commit
7f1a7b4177
@@ -32,4 +32,26 @@ function Test-IsUbuntu20 {
|
|||||||
function Get-ToolsetContent {
|
function Get-ToolsetContent {
|
||||||
$toolset = Join-Path $env:INSTALLER_SCRIPT_FOLDER "toolset.json"
|
$toolset = Join-Path $env:INSTALLER_SCRIPT_FOLDER "toolset.json"
|
||||||
Get-Content $toolset -Raw | ConvertFrom-Json
|
Get-Content $toolset -Raw | ConvertFrom-Json
|
||||||
|
}
|
||||||
|
|
||||||
|
function Get-ToolsetValue {
|
||||||
|
param (
|
||||||
|
[Parameter(Mandatory = $true)]
|
||||||
|
[string] $KeyPath
|
||||||
|
)
|
||||||
|
|
||||||
|
$jsonNode = Get-ToolsetContent
|
||||||
|
|
||||||
|
$pathParts = $KeyPath.Split(".")
|
||||||
|
# try to walk through all arguments consequentially to resolve specific json node
|
||||||
|
$pathParts | ForEach-Object {
|
||||||
|
$jsonNode = $jsonNode.$_
|
||||||
|
}
|
||||||
|
return $jsonNode
|
||||||
|
}
|
||||||
|
|
||||||
|
function Get-AndroidPackages {
|
||||||
|
$androidSDKManagerPath = "/usr/local/lib/android/sdk/tools/bin/sdkmanager"
|
||||||
|
$androidPackages = & $androidSDKManagerPath --list --verbose
|
||||||
|
return $androidPackages
|
||||||
}
|
}
|
||||||
@@ -7,6 +7,7 @@
|
|||||||
# Source the helpers for use with the script
|
# Source the helpers for use with the script
|
||||||
source $HELPER_SCRIPTS/os.sh
|
source $HELPER_SCRIPTS/os.sh
|
||||||
source $HELPER_SCRIPTS/install.sh
|
source $HELPER_SCRIPTS/install.sh
|
||||||
|
source $HELPER_SCRIPTS/invoke-tests.sh
|
||||||
|
|
||||||
function filter_components_by_version {
|
function filter_components_by_version {
|
||||||
minimumVersion=$1
|
minimumVersion=$1
|
||||||
@@ -77,3 +78,5 @@ echo "y" | ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager ${components[@]}
|
|||||||
|
|
||||||
# Add required permissions
|
# Add required permissions
|
||||||
chmod -R a+rwx ${ANDROID_SDK_ROOT}
|
chmod -R a+rwx ${ANDROID_SDK_ROOT}
|
||||||
|
|
||||||
|
invoke_tests "Android"
|
||||||
|
|||||||
50
images/linux/scripts/tests/Android.Tests.ps1
Normal file
50
images/linux/scripts/tests/Android.Tests.ps1
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
Describe "Android" {
|
||||||
|
$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 = @(
|
||||||
|
$platforms,
|
||||||
|
$buildTools,
|
||||||
|
(Get-ToolsetValue "android.extra_list" | ForEach-Object { "extras/${_}" }),
|
||||||
|
(Get-ToolsetValue "android.addon_list" | ForEach-Object { "add-ons/${_}" }),
|
||||||
|
(Get-ToolsetValue "android.additional_tools" | ForEach-Object { "${_}" })
|
||||||
|
) | ForEach-Object { $_ }
|
||||||
|
|
||||||
|
BeforeAll {
|
||||||
|
$ANDROID_SDK_DIR = "/usr/local/lib/android/sdk"
|
||||||
|
|
||||||
|
function Validate-AndroidPackage {
|
||||||
|
param (
|
||||||
|
[Parameter(Mandatory=$true)]
|
||||||
|
[string]$PackageName
|
||||||
|
)
|
||||||
|
|
||||||
|
# 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'
|
||||||
|
# 'cmake;3.6.4111459' -> 'cmake/3.6.4111459'
|
||||||
|
# 'patcher;v4' -> 'patcher/v4'
|
||||||
|
$PackageName = $PackageName.Replace(";", "/")
|
||||||
|
$targetPath = Join-Path $ANDROID_SDK_DIR $PackageName
|
||||||
|
$targetPath | Should -Exist
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Context "Packages" {
|
||||||
|
$testCases = $androidPackages | ForEach-Object { @{ PackageName = $_ } }
|
||||||
|
|
||||||
|
It "<PackageName>" -TestCases $testCases {
|
||||||
|
param ([string] $PackageName)
|
||||||
|
Validate-AndroidPackage $PackageName
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user