mirror of
https://github.com/actions/runner-images.git
synced 2025-12-15 22:26:56 +00:00
[Windows] Move Android and VS helpers to dedicated files (#8903)
This commit is contained in:
committed by
GitHub
parent
45a5b970b8
commit
eb0e4ff100
163
images/windows/scripts/helpers/AndroidHelpers.ps1
Normal file
163
images/windows/scripts/helpers/AndroidHelpers.ps1
Normal file
@@ -0,0 +1,163 @@
|
||||
function Get-AndroidPackages {
|
||||
<#
|
||||
.SYNOPSIS
|
||||
This function returns a list of available Android packages.
|
||||
|
||||
.DESCRIPTION
|
||||
The Get-AndroidPackages function checks if a list of packages is already available in a file.
|
||||
If not, it uses the sdkmanager.bat script to generate a list of available packages and saves it to a file.
|
||||
It then returns the content of this file.
|
||||
|
||||
.PARAMETER SDKRootPath
|
||||
The root path of the Android SDK installation.
|
||||
If not specified, the function uses the ANDROID_HOME environment variable.
|
||||
|
||||
.EXAMPLE
|
||||
Get-AndroidPackages -SDKRootPath "C:\Android\SDK"
|
||||
|
||||
This command returns a list of available Android packages for the specified SDK root path.
|
||||
|
||||
.NOTES
|
||||
This function requires the Android SDK to be installed and the sdkmanager.bat script to be accessible.
|
||||
|
||||
#>
|
||||
Param
|
||||
(
|
||||
[string] $SDKRootPath
|
||||
)
|
||||
|
||||
if (-not $SDKRootPath) {
|
||||
$SDKRootPath = $env:ANDROID_HOME
|
||||
}
|
||||
|
||||
$packagesListFile = "$SDKRootPath\packages-list.txt"
|
||||
$sdkManager = "$SDKRootPath\cmdline-tools\latest\bin\sdkmanager.bat"
|
||||
|
||||
if (-Not (Test-Path -Path $packagesListFile -PathType Leaf)) {
|
||||
(cmd /c "$sdkManager --list --verbose 2>&1") |
|
||||
Where-Object { $_ -Match "^[^\s]" } |
|
||||
Where-Object { $_ -NotMatch "^(Loading |Info: Parsing |---|\[=+|Installed |Available )" } |
|
||||
Where-Object { $_ -NotMatch "^[^;]*$" } |
|
||||
Out-File -FilePath $packagesListFile
|
||||
}
|
||||
|
||||
return Get-Content $packagesListFile
|
||||
}
|
||||
|
||||
function Get-AndroidPlatformPackages {
|
||||
<#
|
||||
.SYNOPSIS
|
||||
This function returns a list of available Android platform packages.
|
||||
|
||||
.DESCRIPTION
|
||||
The Get-AndroidPlatformPackages function uses the Get-AndroidPackages function to get a list of available packages
|
||||
and filters it to return only platform packages.
|
||||
|
||||
.PARAMETER SDKRootPath
|
||||
The root path of the Android SDK installation.
|
||||
If not specified, the function uses the ANDROID_HOME environment variable.
|
||||
|
||||
.PARAMETER minimumVersion
|
||||
The minimum version of the platform packages to include in the result. Default is 0.
|
||||
|
||||
.EXAMPLE
|
||||
Get-AndroidPlatformPackages -SDKRootPath "C:\Android\SDK" -minimumVersion 29
|
||||
|
||||
This command returns a list of available Android platform packages for the specified SDK root path with a minimum version of 29.
|
||||
|
||||
.NOTES
|
||||
This function requires the Android SDK to be installed and the sdkmanager.bat script to be accessible.
|
||||
|
||||
#>
|
||||
Param
|
||||
(
|
||||
[string] $SDKRootPath,
|
||||
[Alias("minVersion")]
|
||||
[int] $minimumVersion = 0
|
||||
)
|
||||
|
||||
if (-not $SDKRootPath) {
|
||||
$SDKRootPath = $env:ANDROID_HOME
|
||||
}
|
||||
|
||||
return (Get-AndroidPackages -SDKRootPath $SDKRootPath) `
|
||||
| Where-Object { "$_".StartsWith("platforms;") } `
|
||||
| Where-Object { ($_.Split("-")[1] -as [int]) -ge $minimumVersion } `
|
||||
| Sort-Object -Unique
|
||||
}
|
||||
|
||||
function Get-AndroidBuildToolPackages {
|
||||
<#
|
||||
.SYNOPSIS
|
||||
This function returns a list of available Android build tool packages.
|
||||
|
||||
.DESCRIPTION
|
||||
The Get-AndroidBuildToolPackages function uses the Get-AndroidPackages function to get a list of available packages
|
||||
and filters it to return only build tool packages.
|
||||
|
||||
.PARAMETER SDKRootPath
|
||||
The root path of the Android SDK installation.
|
||||
If not specified, the function uses the ANDROID_HOME environment variable.
|
||||
|
||||
.PARAMETER minimumVersion
|
||||
The minimum version of the build tool packages to include in the result. Default is 0.0.0.
|
||||
|
||||
.EXAMPLE
|
||||
Get-AndroidBuildToolPackages -SDKRootPath "C:\Android\SDK" -minimumVersion "30.0.2"
|
||||
|
||||
This command returns a list of available Android build tool packages for the specified SDK root path with a minimum version of 30.0.2.
|
||||
|
||||
.NOTES
|
||||
This function requires the Android SDK to be installed and the sdkmanager.bat script to be accessible.
|
||||
|
||||
#>
|
||||
Param
|
||||
(
|
||||
[string] $SDKRootPath,
|
||||
[Alias("minVersion")]
|
||||
[version] $minimumVersion = "0.0.0"
|
||||
)
|
||||
|
||||
if (-not $SDKRootPath) {
|
||||
$SDKRootPath = $env:ANDROID_HOME
|
||||
}
|
||||
|
||||
return (Get-AndroidPackages -SDKRootPath $SDKRootPath) `
|
||||
| Where-Object { "$_".StartsWith("build-tools;") } `
|
||||
| Where-Object { ($_.Split(";")[1] -as [version]) -ge $minimumVersion } `
|
||||
| Sort-Object -Unique
|
||||
}
|
||||
|
||||
function Get-AndroidInstalledPackages {
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Retrieves a list of installed Android packages.
|
||||
|
||||
.DESCRIPTION
|
||||
This function retrieves a list of installed Android packages using the specified SDK root path.
|
||||
|
||||
.PARAMETER SDKRootPath
|
||||
The root path of the Android SDK.
|
||||
If not specified, the function uses the ANDROID_HOME environment variable.
|
||||
|
||||
.EXAMPLE
|
||||
Get-AndroidInstalledPackages -SDKRootPath "C:\Android\SDK"
|
||||
Retrieves a list of installed Android packages using the specified SDK root path.
|
||||
|
||||
.NOTES
|
||||
This function requires the Android SDK to be installed and the SDK root path to be provided.
|
||||
#>
|
||||
|
||||
Param
|
||||
(
|
||||
[string] $SDKRootPath
|
||||
)
|
||||
|
||||
if (-not $SDKRootPath) {
|
||||
$SDKRootPath = $env:ANDROID_HOME
|
||||
}
|
||||
|
||||
$sdkManager = "$SDKRootPath\cmdline-tools\latest\bin\sdkmanager.bat"
|
||||
|
||||
return (cmd /c "$sdkManager --list_installed 2>&1") -notmatch "Warning"
|
||||
}
|
||||
Reference in New Issue
Block a user