mirror of
https://github.com/actions/runner-images.git
synced 2025-12-13 12:48:18 +00:00
[Ubuntu] Add android NDK r23 (#4073)
This commit is contained in:
@@ -156,7 +156,13 @@ function Get-AndroidGoogleAPIsVersions {
|
|||||||
function Get-AndroidNDKVersions {
|
function Get-AndroidNDKVersions {
|
||||||
$ndkFolderPath = Join-Path (Get-AndroidSDKRoot) "ndk"
|
$ndkFolderPath = Join-Path (Get-AndroidSDKRoot) "ndk"
|
||||||
$versions = Get-ChildItem -Path $ndkFolderPath -Name
|
$versions = Get-ChildItem -Path $ndkFolderPath -Name
|
||||||
return ($versions -Join "<br>")
|
$ndkDefaultVersion = Get-ToolsetValue "android.ndk.default"
|
||||||
|
$ndkDefaultFullVersion = Get-ChildItem "$env:ANDROID_HOME/ndk/$ndkDefaultVersion.*" -Name | Select-Object -Last 1
|
||||||
|
|
||||||
|
return ($versions | ForEach-Object {
|
||||||
|
$defaultPostfix = ( $_ -eq $ndkDefaultFullVersion ) ? " (default)" : ""
|
||||||
|
$_ + $defaultPostfix
|
||||||
|
} | Join-String -Separator "<br>")
|
||||||
}
|
}
|
||||||
|
|
||||||
function Build-AndroidEnvironmentTable {
|
function Build-AndroidEnvironmentTable {
|
||||||
|
|||||||
@@ -72,22 +72,25 @@ minimumPlatformVersion=$(get_toolset_value '.android.platform_min_version')
|
|||||||
extras=$(get_toolset_value '.android.extra_list[]|"extras;" + .')
|
extras=$(get_toolset_value '.android.extra_list[]|"extras;" + .')
|
||||||
addons=$(get_toolset_value '.android.addon_list[]|"add-ons;" + .')
|
addons=$(get_toolset_value '.android.addon_list[]|"add-ons;" + .')
|
||||||
additional=$(get_toolset_value '.android.additional_tools[]')
|
additional=$(get_toolset_value '.android.additional_tools[]')
|
||||||
ANDROID_NDK_MAJOR_LTS=($(get_toolset_value '.android.ndk.lts'))
|
ANDROID_NDK_MAJOR_VERSIONS=($(get_toolset_value '.android.ndk.versions[]'))
|
||||||
ndkLTSFullVersion=$(get_full_ndk_version $ANDROID_NDK_MAJOR_LTS)
|
ANDROID_NDK_MAJOR_DEFAULT=$(get_toolset_value '.android.ndk.default')
|
||||||
|
ndkDefaultFullVersion=$(get_full_ndk_version $ANDROID_NDK_MAJOR_DEFAULT)
|
||||||
|
|
||||||
components=("${extras[@]}" "${addons[@]}" "${additional[@]}" "ndk;$ndkLTSFullVersion")
|
components=("${extras[@]}" "${addons[@]}" "${additional[@]}")
|
||||||
if isUbuntu20; then
|
for ndk_version in "${ANDROID_NDK_MAJOR_VERSIONS[@]}"
|
||||||
ANDROID_NDK_MAJOR_LATEST=($(get_toolset_value '.android.ndk.latest'))
|
do
|
||||||
ndkLatestFullVersion=$(get_full_ndk_version $ANDROID_NDK_MAJOR_LATEST)
|
ndk_full_version=$(get_full_ndk_version $ndk_version)
|
||||||
components+=("ndk;$ndkLatestFullVersion")
|
components+=("ndk;$ndk_full_version")
|
||||||
fi
|
done
|
||||||
|
|
||||||
# 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
|
||||||
ln -s $ANDROID_SDK_ROOT/ndk/$ndkLTSFullVersion $ANDROID_NDK_ROOT
|
ln -s $ANDROID_SDK_ROOT/ndk/$ndkDefaultFullVersion $ANDROID_NDK_ROOT
|
||||||
|
|
||||||
if isUbuntu20; then
|
if isUbuntu20; then
|
||||||
|
ANDROID_NDK_MAJOR_LATEST=(${ANDROID_NDK_MAJOR_VERSIONS[-1]})
|
||||||
|
ndkLatestFullVersion=$(get_full_ndk_version $ANDROID_NDK_MAJOR_LATEST)
|
||||||
echo "ANDROID_NDK_LATEST_HOME=$ANDROID_SDK_ROOT/ndk/$ndkLatestFullVersion" | tee -a /etc/environment
|
echo "ANDROID_NDK_LATEST_HOME=$ANDROID_SDK_ROOT/ndk/$ndkLatestFullVersion" | tee -a /etc/environment
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,10 @@ Describe "Android" {
|
|||||||
$androidSdkManagerPackages = Get-AndroidPackages
|
$androidSdkManagerPackages = Get-AndroidPackages
|
||||||
[int]$platformMinVersion = Get-ToolsetValue "android.platform_min_version"
|
[int]$platformMinVersion = Get-ToolsetValue "android.platform_min_version"
|
||||||
[version]$buildToolsMinVersion = Get-ToolsetValue "android.build_tools_min_version"
|
[version]$buildToolsMinVersion = Get-ToolsetValue "android.build_tools_min_version"
|
||||||
[string]$ndkLTSVersion = Get-ToolsetValue "android.ndk.lts"
|
[string]$ndkDefaultVersion = Get-ToolsetValue "android.ndk.default"
|
||||||
$ndkLTSFullVersion = (Get-ChildItem "/usr/local/lib/android/sdk/ndk/$ndkLTSVersion.*" | Select-Object -Last 1).Name
|
[array]$ndkVersions = Get-ToolsetValue "android.ndk.versions"
|
||||||
|
$ndkDefaultFullVersion = Get-ChildItem "$env:ANDROID_HOME/ndk/$ndkDefaultVersion.*" -Name | Select-Object -Last 1
|
||||||
|
$ndkFullVersions = $ndkVersions | ForEach-Object { (Get-ChildItem "/usr/local/lib/android/sdk/ndk/${_}.*" | Select-Object -Last 1).Name } | ForEach-Object { "ndk/${_}" }
|
||||||
|
|
||||||
$platformVersionsList = ($androidSdkManagerPackages | Where-Object { "$_".StartsWith("platforms;") }) -replace 'platforms;android-', ''
|
$platformVersionsList = ($androidSdkManagerPackages | Where-Object { "$_".StartsWith("platforms;") }) -replace 'platforms;android-', ''
|
||||||
$platformNumericList = $platformVersionsList | Where-Object { $_ -match "\d+" } | Where-Object { [int]$_ -ge $platformMinVersion } | Sort-Object -Unique
|
$platformNumericList = $platformVersionsList | Where-Object { $_ -match "\d+" } | Where-Object { [int]$_ -ge $platformMinVersion } | Sort-Object -Unique
|
||||||
@@ -17,18 +19,12 @@ Describe "Android" {
|
|||||||
$androidPackages = @(
|
$androidPackages = @(
|
||||||
$platforms,
|
$platforms,
|
||||||
$buildTools,
|
$buildTools,
|
||||||
|
$ndkFullVersions,
|
||||||
(Get-ToolsetValue "android.extra_list" | ForEach-Object { "extras/${_}" }),
|
(Get-ToolsetValue "android.extra_list" | ForEach-Object { "extras/${_}" }),
|
||||||
(Get-ToolsetValue "android.addon_list" | ForEach-Object { "add-ons/${_}" }),
|
(Get-ToolsetValue "android.addon_list" | ForEach-Object { "add-ons/${_}" }),
|
||||||
(Get-ToolsetValue "android.additional_tools" | ForEach-Object { "${_}" }),
|
(Get-ToolsetValue "android.additional_tools" | ForEach-Object { "${_}" })
|
||||||
"ndk/$ndkLTSFullVersion"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
[string]$ndkLatestVersion = Get-ToolsetValue "android.ndk.latest"
|
|
||||||
if ($ndkLatestVersion) {
|
|
||||||
$ndkLatestFullVersion = (Get-ChildItem "/usr/local/lib/android/sdk/ndk/$ndkLatestVersion.*" | Select-Object -Last 1).Name
|
|
||||||
$androidPackages += @("ndk/$ndkLatestFullVersion")
|
|
||||||
}
|
|
||||||
|
|
||||||
$androidPackages = $androidPackages | ForEach-Object { $_ }
|
$androidPackages = $androidPackages | ForEach-Object { $_ }
|
||||||
|
|
||||||
BeforeAll {
|
BeforeAll {
|
||||||
@@ -67,10 +63,17 @@ Describe "Android" {
|
|||||||
|
|
||||||
Context "Packages" {
|
Context "Packages" {
|
||||||
$testCases = $androidPackages | ForEach-Object { @{ PackageName = $_ } }
|
$testCases = $androidPackages | ForEach-Object { @{ PackageName = $_ } }
|
||||||
|
$defaultNdkTestCase = @{ NdkDefaultFullVersion = $ndkDefaultFullVersion }
|
||||||
|
|
||||||
It "<PackageName>" -TestCases $testCases {
|
It "<PackageName>" -TestCases $testCases {
|
||||||
param ([string] $PackageName)
|
param ([string] $PackageName)
|
||||||
Validate-AndroidPackage $PackageName
|
Validate-AndroidPackage $PackageName
|
||||||
}
|
}
|
||||||
|
|
||||||
|
It "ndk-bundle points to the default NDK version" -TestCases $defaultNdkTestCase {
|
||||||
|
$ndkLinkTarget = (Get-Item $env:ANDROID_NDK_HOME).Target
|
||||||
|
$ndkVersion = Split-Path -Path $ndkLinkTarget -Leaf
|
||||||
|
$ndkVersion | Should -BeExactly $NdkDefaultFullVersion
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -95,7 +95,10 @@
|
|||||||
"cmake;3.18.1"
|
"cmake;3.18.1"
|
||||||
],
|
],
|
||||||
"ndk": {
|
"ndk": {
|
||||||
"lts": "21"
|
"default": "21",
|
||||||
|
"versions": [
|
||||||
|
"21", "23"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"powershellModules": [
|
"powershellModules": [
|
||||||
|
|||||||
@@ -90,8 +90,10 @@
|
|||||||
"cmake;3.18.1"
|
"cmake;3.18.1"
|
||||||
],
|
],
|
||||||
"ndk": {
|
"ndk": {
|
||||||
"lts": "21",
|
"default": "21",
|
||||||
"latest": "22"
|
"versions": [
|
||||||
|
"21", "22", "23"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"powershellModules": [
|
"powershellModules": [
|
||||||
|
|||||||
Reference in New Issue
Block a user