mirror of
https://github.com/actions/runner-images.git
synced 2025-12-13 20:56:47 +00:00
[Windows] Add android NDK r23 (#4100)
This commit is contained in:
@@ -96,34 +96,27 @@ Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
|
|||||||
-AndroidPackages $androidToolset.additional_tools
|
-AndroidPackages $androidToolset.additional_tools
|
||||||
|
|
||||||
# NDKs
|
# NDKs
|
||||||
$ndkLTSMajorVersion = $androidToolset.ndk.lts
|
$ndkMajorVersions = $androidToolset.ndk.versions
|
||||||
$ndkLatestMajorVersion = $androidToolset.ndk.latest
|
$ndkDefaultMajorVersion = $androidToolset.ndk.default
|
||||||
|
$ndkLatestMajorVersion = $ndkMajorVersions | Select-Object -Last 1
|
||||||
|
|
||||||
$ndkLTSPackageName = Get-AndroidPackagesByName -AndroidPackages $androidPackages `
|
$androidNDKs = $ndkMajorVersions | Foreach-Object {
|
||||||
-PrefixPackageName "ndk;$ndkLTSMajorVersion" `
|
Get-AndroidPackagesByName -AndroidPackages $androidPackages -PrefixPackageName "ndk;$_" | Sort-Object -Unique | Select-Object -Last 1
|
||||||
| Sort-Object -Unique `
|
}
|
||||||
| Select-Object -Last 1
|
|
||||||
|
|
||||||
$ndkLatestPackageName = Get-AndroidPackagesByName -AndroidPackages $androidPackages `
|
|
||||||
-PrefixPackageName "ndk;$ndkLatestMajorVersion" `
|
|
||||||
| Sort-Object -Unique `
|
|
||||||
| Select-Object -Last 1
|
|
||||||
|
|
||||||
$androidNDKs = @($ndkLTSPackageName, $ndkLatestPackageName)
|
|
||||||
|
|
||||||
Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
|
Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
|
||||||
-AndroidSDKRootPath $sdkRoot `
|
-AndroidSDKRootPath $sdkRoot `
|
||||||
-AndroidPackages $androidNDKs
|
-AndroidPackages $androidNDKs
|
||||||
|
|
||||||
$ndkLTSVersion = $ndkLTSPackageName.Split(';')[1]
|
$ndkDefaultVersion = ($androidNDKs | Where-Object { $_ -match "ndk;$ndkDefaultMajorVersion" }).Split(';')[1]
|
||||||
$ndkLatestVersion = $ndkLatestPackageName.Split(';')[1]
|
$ndkLatestVersion = ($androidNDKs | Where-Object { $_ -match "ndk;$ndkLatestMajorVersion" }).Split(';')[1]
|
||||||
|
|
||||||
# Android NDK root path.
|
# Android NDK root path.
|
||||||
$ndkRoot = "$sdkRoot\ndk-bundle"
|
$ndkRoot = "$sdkRoot\ndk-bundle"
|
||||||
# This changes were added due to incompatibility with android ndk-bundle (ndk;22.0.7026061).
|
# This changes were added due to incompatibility with android ndk-bundle (ndk;22.0.7026061).
|
||||||
# Link issue virtual-environments: https://github.com/actions/virtual-environments/issues/2481
|
# Link issue virtual-environments: https://github.com/actions/virtual-environments/issues/2481
|
||||||
# Link issue xamarin-android: https://github.com/xamarin/xamarin-android/issues/5526
|
# Link issue xamarin-android: https://github.com/xamarin/xamarin-android/issues/5526
|
||||||
New-Item -Path $ndkRoot -ItemType SymbolicLink -Value "$sdkRoot\ndk\$ndkLTSVersion"
|
New-Item -Path $ndkRoot -ItemType SymbolicLink -Value "$sdkRoot\ndk\$ndkDefaultVersion"
|
||||||
|
|
||||||
if (Test-Path $ndkRoot) {
|
if (Test-Path $ndkRoot) {
|
||||||
setx ANDROID_HOME $sdkRoot /M
|
setx ANDROID_HOME $sdkRoot /M
|
||||||
@@ -133,7 +126,7 @@ if (Test-Path $ndkRoot) {
|
|||||||
setx ANDROID_NDK_ROOT $ndkRoot /M
|
setx ANDROID_NDK_ROOT $ndkRoot /M
|
||||||
(Get-Content -Encoding UTF8 "${ndkRoot}\ndk-build.cmd").replace('%~dp0\build\ndk-build.cmd','"%~dp0\build\ndk-build.cmd"')|Set-Content -Encoding UTF8 "${ndkRoot}\ndk-build.cmd"
|
(Get-Content -Encoding UTF8 "${ndkRoot}\ndk-build.cmd").replace('%~dp0\build\ndk-build.cmd','"%~dp0\build\ndk-build.cmd"')|Set-Content -Encoding UTF8 "${ndkRoot}\ndk-build.cmd"
|
||||||
} else {
|
} else {
|
||||||
Write-Host "LTS NDK $ndkLTSVersion is not installed at path $ndkRoot"
|
Write-Host "Default NDK $ndkDefaultVersion is not installed at path $ndkRoot"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ function Build-AndroidTable {
|
|||||||
},
|
},
|
||||||
@{
|
@{
|
||||||
"Package" = "NDK"
|
"Package" = "NDK"
|
||||||
"Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "ndk;"
|
"Version" = Get-AndroidNdkVersions -PackageInfo $packageInfo
|
||||||
},
|
},
|
||||||
@{
|
@{
|
||||||
"Package" = "SDK Patch Applier v4"
|
"Package" = "SDK Patch Applier v4"
|
||||||
@@ -158,6 +158,25 @@ function Get-AndroidGoogleAPIsVersions {
|
|||||||
return ($versions -Join "<br>")
|
return ($versions -Join "<br>")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function Get-AndroidNdkVersions {
|
||||||
|
param (
|
||||||
|
[Parameter(Mandatory)]
|
||||||
|
[object] $PackageInfo
|
||||||
|
)
|
||||||
|
|
||||||
|
$ndkLinkTarget = (Get-Item $env:ANDROID_NDK_HOME).Target
|
||||||
|
$ndkDefaultFullVersion = Split-Path -Path $ndkLinkTarget -Leaf
|
||||||
|
|
||||||
|
$versions = $packageInfo | Where-Object { $_ -Match "ndk;" } | ForEach-Object {
|
||||||
|
$version = (Split-TableRowByColumns $_)[1]
|
||||||
|
if ($version -eq $ndkDefaultFullVersion) {
|
||||||
|
$version += " (default)"
|
||||||
|
}
|
||||||
|
$version
|
||||||
|
}
|
||||||
|
return ($versions -Join "<br>")
|
||||||
|
}
|
||||||
|
|
||||||
function Build-AndroidEnvironmentTable {
|
function Build-AndroidEnvironmentTable {
|
||||||
$androidVersions = Get-Item env:ANDROID_*
|
$androidVersions = Get-Item env:ANDROID_*
|
||||||
|
|
||||||
|
|||||||
@@ -5,8 +5,12 @@ Describe "Android SDK" {
|
|||||||
$androidPackages = Get-AndroidPackages -AndroidSDKManagerPath (Get-AndroidSDKManagerPath)
|
$androidPackages = Get-AndroidPackages -AndroidSDKManagerPath (Get-AndroidSDKManagerPath)
|
||||||
$androidInstalledPackages = Get-AndroidInstalledPackages
|
$androidInstalledPackages = Get-AndroidInstalledPackages
|
||||||
|
|
||||||
$ndkLTSMajorVersion = $androidToolset.ndk.lts
|
$ndkDefaultMajorVersion = $androidToolset.ndk.default
|
||||||
$ndkLatestMajorVersion = $androidToolset.ndk.latest
|
$ndkDefaultFullVersion = Get-ChildItem "$env:ANDROID_HOME/ndk/$ndkDefaultMajorVersion.*" -Name | Select-Object -Last 1
|
||||||
|
$ndkVersions = $androidToolset.ndk.versions
|
||||||
|
$ndkPackagesTestCases = $ndkVersions | ForEach-Object {
|
||||||
|
@{ ndkPackage = $_; installedPackages = $androidInstalledPackages }
|
||||||
|
}
|
||||||
|
|
||||||
$platformTestCases = @()
|
$platformTestCases = @()
|
||||||
[int]$platformMinVersion = $androidToolset.platform_min_version
|
[int]$platformMinVersion = $androidToolset.platform_min_version
|
||||||
@@ -91,12 +95,14 @@ Describe "Android SDK" {
|
|||||||
"$installedPackages" | Should -Match $additionalToolVersion
|
"$installedPackages" | Should -Match $additionalToolVersion
|
||||||
}
|
}
|
||||||
|
|
||||||
It "LTS NDK is installed" -TestCases @(@{ ndkLTSVersion = $ndkLTSMajorVersion; installedPackages = $androidInstalledPackages }) {
|
It "NDK <ndkPackage> is installed" -TestCases $ndkPackagesTestCases {
|
||||||
"$installedPackages" | Should -Match "ndk;$ndkLTSVersion"
|
"$installedPackages" | Should -Match "ndk;$ndkPackage"
|
||||||
}
|
}
|
||||||
|
|
||||||
It "Latest NDK is installed" -TestCases @(@{ ndkLatestVersion = $ndkLatestMajorVersion; installedPackages = $androidInstalledPackages }) {
|
It "ndk-bundle points to the default NDK version" -TestCases @{ ndkDefaultVersion = $ndkDefaultFullVersion } {
|
||||||
"$installedPackages" | Should -Match "ndk;$ndkLatestVersion"
|
$ndkLinkTarget = (Get-Item $env:ANDROID_NDK_HOME).Target
|
||||||
|
$ndkVersion = Split-Path -Path $ndkLinkTarget -Leaf
|
||||||
|
$ndkVersion | Should -BeExactly $ndkDefaultVersion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -178,8 +178,10 @@
|
|||||||
"patcher;v4"
|
"patcher;v4"
|
||||||
],
|
],
|
||||||
"ndk": {
|
"ndk": {
|
||||||
"lts": "21",
|
"default": "21",
|
||||||
"latest": "22"
|
"versions": [
|
||||||
|
"21", "22", "23"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"MsysPackages": {
|
"MsysPackages": {
|
||||||
|
|||||||
@@ -178,8 +178,10 @@
|
|||||||
"patcher;v4"
|
"patcher;v4"
|
||||||
],
|
],
|
||||||
"ndk": {
|
"ndk": {
|
||||||
"lts": "21",
|
"default": "21",
|
||||||
"latest": "22"
|
"versions": [
|
||||||
|
"21", "22", "23"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"MsysPackages": {
|
"MsysPackages": {
|
||||||
|
|||||||
@@ -132,8 +132,10 @@
|
|||||||
"patcher;v4"
|
"patcher;v4"
|
||||||
],
|
],
|
||||||
"ndk": {
|
"ndk": {
|
||||||
"lts": "21",
|
"default": "21",
|
||||||
"latest": "22"
|
"versions": [
|
||||||
|
"21", "22", "23"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"MsysPackages": {
|
"MsysPackages": {
|
||||||
|
|||||||
Reference in New Issue
Block a user