mirror of
https://github.com/actions/runner-images-sangeeth.git
synced 2025-12-20 06:29:50 +00:00
improved documentation for Android on macOS
This commit is contained in:
@@ -1,7 +1,3 @@
|
|||||||
Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
|
|
||||||
|
|
||||||
$os = Get-OSVersion
|
|
||||||
|
|
||||||
function Split-TableRowByColumns {
|
function Split-TableRowByColumns {
|
||||||
param(
|
param(
|
||||||
[string] $Row
|
[string] $Row
|
||||||
@@ -9,17 +5,6 @@ function Split-TableRowByColumns {
|
|||||||
return $Row.Split("|") | ForEach-Object { $_.trim() }
|
return $Row.Split("|") | ForEach-Object { $_.trim() }
|
||||||
}
|
}
|
||||||
|
|
||||||
function Build-AndroidTableObject {
|
|
||||||
param(
|
|
||||||
[string] $PackageName,
|
|
||||||
[string] $Description
|
|
||||||
)
|
|
||||||
return [PSCustomObject] @{
|
|
||||||
"Package Name" = $PackageName
|
|
||||||
"Description" = $Description
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function Get-AndroidSDKRoot {
|
function Get-AndroidSDKRoot {
|
||||||
return Join-Path $env:HOME "Library" "Android" "sdk"
|
return Join-Path $env:HOME "Library" "Android" "sdk"
|
||||||
}
|
}
|
||||||
@@ -43,124 +28,122 @@ function Get-AndroidInstalledPackages {
|
|||||||
return $androidInstalledPackages
|
return $androidInstalledPackages
|
||||||
}
|
}
|
||||||
|
|
||||||
function Build-AndroidSDKToolsTable {
|
|
||||||
|
function Build-AndroidTable {
|
||||||
|
Write-Host "Build-AndroidTable"
|
||||||
|
$packageInfo = Get-AndroidInstalledPackages
|
||||||
|
Write-Host $packageInfo
|
||||||
|
return @(
|
||||||
|
@{
|
||||||
|
"Package" = "Android SDK Tools"
|
||||||
|
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Android SDK Tools"
|
||||||
|
},
|
||||||
|
@{
|
||||||
|
"Package" = "Android SDK Platforms"
|
||||||
|
"Version" = Get-AndroidPlatformVersions -PackageInfo $packageInfo
|
||||||
|
},
|
||||||
|
@{
|
||||||
|
"Package" = "Android SDK Build-tools"
|
||||||
|
"Version" = Get-AndroidBuildToolVersions -PackageInfo $packageInfo
|
||||||
|
},
|
||||||
|
@{
|
||||||
|
"Package" = "Android SDK Platform-Tools"
|
||||||
|
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Android SDK Platform-Tools"
|
||||||
|
},
|
||||||
|
@{
|
||||||
|
"Package" = "Google APIs"
|
||||||
|
"Version" = Get-AndroidGoogleAPIsVersions -PackageInfo $packageInfo
|
||||||
|
},
|
||||||
|
@{
|
||||||
|
"Package" = "Android Support Repository"
|
||||||
|
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Android Support Repository"
|
||||||
|
},
|
||||||
|
@{
|
||||||
|
"Package" = "Google Play services"
|
||||||
|
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Google Play services"
|
||||||
|
},
|
||||||
|
@{
|
||||||
|
"Package" = "Google Repository"
|
||||||
|
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Google Repository"
|
||||||
|
},
|
||||||
|
@{
|
||||||
|
"Package" = "SDK Patch Applier v4"
|
||||||
|
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "SDK Patch Applier v4"
|
||||||
|
},
|
||||||
|
@{
|
||||||
|
"Package" = "CMake"
|
||||||
|
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "cmake"
|
||||||
|
},
|
||||||
|
@{
|
||||||
|
"Package" = "NDK"
|
||||||
|
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "ndk-bundle"
|
||||||
|
}
|
||||||
|
) | Where-Object { $_.Version } | ForEach-Object {
|
||||||
|
[PSCustomObject] @{
|
||||||
|
"Package Name" = $_.Package
|
||||||
|
"Version" = $_.Version
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function Get-AndroidPackageVersions {
|
||||||
param (
|
param (
|
||||||
[Parameter(Mandatory)]
|
[Parameter(Mandatory)]
|
||||||
[object] $packageInfo
|
[object] $PackageInfo,
|
||||||
|
[Parameter(Mandatory)]
|
||||||
|
[object] $MatchedString
|
||||||
)
|
)
|
||||||
|
|
||||||
return $packageInfo | ForEach-Object {
|
$versions = $packageInfo | Where-Object { $_ -Match $MatchedString } | ForEach-Object {
|
||||||
$packageInfoParts = Split-TableRowByColumns $_
|
$packageInfoParts = Split-TableRowByColumns $_
|
||||||
$packageName = $packageInfoParts[0]
|
return $packageInfoParts[1]
|
||||||
$packageDescription = $packageInfoParts[2] + ", Revision " + $packageInfoParts[1]
|
|
||||||
return Build-AndroidTableObject -PackageName $packageName -Description $packageDescription
|
|
||||||
}
|
}
|
||||||
|
return ($versions -Join "<br>")
|
||||||
}
|
}
|
||||||
|
|
||||||
function Build-AndroidSDKPlatformTable {
|
function Get-AndroidPlatformVersions {
|
||||||
param (
|
param (
|
||||||
[Parameter(Mandatory)]
|
[Parameter(Mandatory)]
|
||||||
[object] $packageInfo
|
[object] $PackageInfo
|
||||||
)
|
)
|
||||||
|
|
||||||
return $packageInfo | ForEach-Object {
|
$versions = $packageInfo | Where-Object { $_ -Match "Android SDK Platform " } | ForEach-Object {
|
||||||
$packageInfoParts = Split-TableRowByColumns $_
|
$packageInfoParts = Split-TableRowByColumns $_
|
||||||
$packageName = $packageInfoParts[0].split(";")[1]
|
$revision = $packageInfoParts[1]
|
||||||
$packageDescription = $packageInfoParts[2] + ", Revision " + $packageInfoParts[1]
|
$version = $packageInfoParts[0].split(";")[1]
|
||||||
return Build-AndroidTableObject -PackageName $packageName -Description $packageDescription
|
return "$version (rev $revision)"
|
||||||
}
|
}
|
||||||
|
[array]::Reverse($versions)
|
||||||
|
return ($versions -Join "<br>")
|
||||||
}
|
}
|
||||||
|
|
||||||
function Build-AndroidSDKBuildToolsTable {
|
function Get-AndroidBuildToolVersions {
|
||||||
param (
|
param (
|
||||||
[Parameter(Mandatory)]
|
[Parameter(Mandatory)]
|
||||||
[object] $packageInfo
|
[object] $PackageInfo
|
||||||
)
|
)
|
||||||
|
|
||||||
return $packageInfo | ForEach-Object {
|
$versions = $packageInfo | Where-Object { $_ -Match "Android SDK Build-Tools" } | ForEach-Object {
|
||||||
$packageInfoParts = Split-TableRowByColumns $_
|
$packageInfoParts = Split-TableRowByColumns $_
|
||||||
$packageName = $packageInfoParts[0].replace(";", "-")
|
return $packageInfoParts[1]
|
||||||
$packageDescription = "Android SDK Build-Tools, Revision " + $packageInfoParts[1]
|
|
||||||
return Build-AndroidTableObject -PackageName $packageName -Description $packageDescription
|
|
||||||
}
|
}
|
||||||
|
$groupVersions = @()
|
||||||
|
$versions | ForEach-Object {
|
||||||
|
$majorVersion = $_.Split(".")[0]
|
||||||
|
$groupVersions += $versions | Where-Object { $_.StartsWith($majorVersion) } | Join-String -Separator " "
|
||||||
|
}
|
||||||
|
return ($groupVersions | Sort-Object -Descending -Unique | Join-String -Separator "<br>")
|
||||||
}
|
}
|
||||||
|
|
||||||
function Build-AndroidNDKTable {
|
function Get-AndroidGoogleAPIsVersions {
|
||||||
param (
|
param (
|
||||||
[Parameter(Mandatory)][AllowEmptyString()]
|
[Parameter(Mandatory)]
|
||||||
[string[]] $installedPackages
|
[object] $PackageInfo
|
||||||
)
|
)
|
||||||
|
|
||||||
$ndkInfo = @()
|
$versions = $packageInfo | Where-Object { $_ -Match "Google APIs" } | ForEach-Object {
|
||||||
|
$packageInfoParts = Split-TableRowByColumns $_
|
||||||
if ($os.IsLessThanBigSur) {
|
return $packageInfoParts[0].split(";")[1]
|
||||||
$ndkInfo += [PSCustomObject] @{
|
|
||||||
# Hardcode NDK 15 as a separate case since it is installed manually without sdk-manager (to none default location)
|
|
||||||
"Version" = "15.2.4203891"
|
|
||||||
"Path" = Join-Path (Get-AndroidSDKRoot) "android-ndk-r15c"
|
|
||||||
}
|
|
||||||
|
|
||||||
$ndkFolderPath = Join-Path (Get-AndroidSDKRoot) "ndk"
|
|
||||||
$ndkInfo += Get-ChildItem -Path $ndkFolderPath | ForEach-Object {
|
|
||||||
return [PSCustomObject] @{
|
|
||||||
"Version" = $_.Name
|
|
||||||
"Path" = $_.FullName
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$ndkBundleInfo = $installedPackages | Where-Object { $_ -Match "ndk-bundle" } | Select-Object -First 1
|
|
||||||
$ndkBundleVersion = (Split-TableRowByColumns $ndkBundleInfo)[1]
|
|
||||||
$ndkInfo += [PSCustomObject] @{
|
|
||||||
"Version" = $ndkBundleVersion
|
|
||||||
"Path" = Join-Path (Get-AndroidSDKRoot) "ndk-bundle"
|
|
||||||
}
|
|
||||||
|
|
||||||
$ndkInfo | ForEach-Object {
|
|
||||||
$_.Path = $_.Path.Replace($env:HOME, '$HOME')
|
|
||||||
}
|
|
||||||
|
|
||||||
return $ndkInfo
|
|
||||||
}
|
|
||||||
|
|
||||||
function Build-AndroidUtilsTable {
|
|
||||||
param (
|
|
||||||
[Parameter(Mandatory)][AllowEmptyString()]
|
|
||||||
[string[]] $installedPackages
|
|
||||||
)
|
|
||||||
|
|
||||||
$utilsList = @("cmake", "Android Emulator")
|
|
||||||
return $utilsList | ForEach-Object {
|
|
||||||
$packageName = $_
|
|
||||||
$packageInfo = $installedPackages | Where-Object { $_ -Match $packageName } | Select-Object -First 1
|
|
||||||
$packageInfoParts = Split-TableRowByColumns $packageInfo
|
|
||||||
return [PSCustomObject] @{
|
|
||||||
"Package Name" = $packageName
|
|
||||||
"Version" = $packageInfoParts[1]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function Build-AndroidExtraPackagesTable {
|
|
||||||
param (
|
|
||||||
[Parameter(Mandatory)][AllowEmptyString()]
|
|
||||||
[string[]] $installedPackages
|
|
||||||
)
|
|
||||||
|
|
||||||
$extraPackages = @(
|
|
||||||
"Android Support Repository",
|
|
||||||
"Google Play services",
|
|
||||||
"Google Repository",
|
|
||||||
"Hardware_Accelerated_Execution_Manager"
|
|
||||||
)
|
|
||||||
|
|
||||||
return $extraPackages | ForEach-Object {
|
|
||||||
$packageId = $_
|
|
||||||
$packageInfo = $installedPackages | Where-Object { $_ -Like "*${packageId}*" } | Select-Object -First 1
|
|
||||||
$packageInfoParts = Split-TableRowByColumns $packageInfo
|
|
||||||
return [PSCustomObject] @{
|
|
||||||
"Package Name" = $packageInfoParts[2]
|
|
||||||
"Version" = $packageInfoParts[1]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
return ($versions -Join "<br>")
|
||||||
}
|
}
|
||||||
@@ -185,9 +185,9 @@ $azureCLIVersion = Run-Command "az -v" | Select-String "^azure-cli" | Take-Part
|
|||||||
$awsVersion = Run-Command "aws --version" | Take-Part -Part 0 | Take-Part -Delimiter "/" -Part 1
|
$awsVersion = Run-Command "aws --version" | Take-Part -Part 0 | Take-Part -Delimiter "/" -Part 1
|
||||||
$aliyunVersion = Run-Command "aliyun --version" | Select-String "Alibaba Cloud Command Line Interface Version " | Take-Part -Part 6
|
$aliyunVersion = Run-Command "aliyun --version" | Select-String "Alibaba Cloud Command Line Interface Version " | Take-Part -Part 6
|
||||||
$awsSamVersion = Run-Command "sam --version" | Take-Part -Part 3
|
$awsSamVersion = Run-Command "sam --version" | Take-Part -Part 3
|
||||||
$awsSessionManagerVersion = Run-Command "session-manager-plugin --version"
|
$awsSessionManagerVersion = Run-Command "session-manager-plugin --version"
|
||||||
$ghcUpVersion = Run-Command "ghcup --version" | Take-Part -Part 5
|
$ghcUpVersion = Run-Command "ghcup --version" | Take-Part -Part 5
|
||||||
$ghcVersion = Run-Command "ghc --version" | Take-Part -Part 7
|
$ghcVersion = Run-Command "ghc --version" | Take-Part -Part 7
|
||||||
$cabalVersion = Run-Command "cabal --version" | Take-Part -Part 3
|
$cabalVersion = Run-Command "cabal --version" | Take-Part -Part 3
|
||||||
$stackVersion = Run-Command "stack --version" | Take-Part -Part 1 | ForEach-Object {$_.replace(",","")}
|
$stackVersion = Run-Command "stack --version" | Take-Part -Part 1 | ForEach-Object {$_.replace(",","")}
|
||||||
|
|
||||||
@@ -300,45 +300,7 @@ if (-not $os.IsBigSur) {
|
|||||||
|
|
||||||
# Android section
|
# Android section
|
||||||
$markdown += New-MDHeader "Android" -Level 3
|
$markdown += New-MDHeader "Android" -Level 3
|
||||||
$androidInstalledPackages = Get-AndroidInstalledPackages
|
$markdown += Build-AndroidTable | New-MDTable
|
||||||
|
|
||||||
$markdown += New-MDHeader "Android SDK Tools" -Level 4
|
|
||||||
$androidSDKTools = $androidInstalledPackages | Where-Object { $_ -Match "Android SDK Tools" }
|
|
||||||
$markdown += Build-AndroidSDKToolsTable $androidSDKTools | New-MDTable
|
|
||||||
$markdown += New-MDNewLine
|
|
||||||
|
|
||||||
$markdown += New-MDHeader "Android SDK Platform-Tools" -Level 4
|
|
||||||
$androidSDKPlatformTools = $androidInstalledPackages | Where-Object { $_ -Match "Android SDK Platform-Tools" }
|
|
||||||
$markdown += Build-AndroidSDKToolsTable $androidSDKPlatformTools | New-MDTable
|
|
||||||
$markdown += New-MDNewLine
|
|
||||||
|
|
||||||
$markdown += New-MDHeader "Android SDK Platforms" -Level 4
|
|
||||||
$androidSDKPlatforms = $androidInstalledPackages | Where-Object { $_ -Match "Android SDK Platform " }
|
|
||||||
$markdown += Build-AndroidSDKPlatformTable $androidSDKPlatforms | New-MDTable
|
|
||||||
$markdown += New-MDNewLine
|
|
||||||
|
|
||||||
$markdown += New-MDHeader "Android SDK Build-Tools" -Level 4
|
|
||||||
$androidSDKBuildTools = $androidInstalledPackages | Where-Object { $_ -Match "Android SDK Build-Tools" }
|
|
||||||
$markdown += Build-AndroidSDKBuildtoolsTable $androidSDKBuildTools | New-MDTable
|
|
||||||
$markdown += New-MDNewLine
|
|
||||||
|
|
||||||
$markdown += New-MDHeader "Android NDKs" -Level 4
|
|
||||||
$markdown += Build-AndroidNDKTable $androidInstalledPackages | New-MDTable
|
|
||||||
$markdown += New-MDNewLine
|
|
||||||
|
|
||||||
$markdown += New-MDHeader "Android Utils" -Level 4
|
|
||||||
$markdown += Build-AndroidUtilsTable $androidInstalledPackages | New-MDTable
|
|
||||||
$markdown += New-MDNewLine
|
|
||||||
|
|
||||||
$androidGoogleAPIsTable = $androidInstalledPackages | Where-Object { $_ -Match "Google APIs" }
|
|
||||||
if ($androidGoogleAPIsTable.Count -gt 0) {
|
|
||||||
$markdown += New-MDHeader "Android Google APIs" -Level 4
|
|
||||||
$markdown += Build-AndroidSDKPlatformTable $androidGoogleAPIsTable | New-MDTable
|
|
||||||
$markdown += New-MDNewLine
|
|
||||||
}
|
|
||||||
|
|
||||||
$markdown += New-MDHeader "Extra Packages" -Level 4
|
|
||||||
$markdown += Build-AndroidExtraPackagesTable $androidInstalledPackages | New-MDTable
|
|
||||||
$markdown += New-MDNewLine
|
$markdown += New-MDNewLine
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|||||||
Reference in New Issue
Block a user