mirror of
https://github.com/actions/runner-images.git
synced 2025-12-12 20:26:49 +00:00
164 lines
5.3 KiB
PowerShell
164 lines
5.3 KiB
PowerShell
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"
|
|
}
|