11parameters :
22 installAndroidDependencies : false
33 androidSdkRoot : $(Agent.TempDirectory)/android-sdk
4- javaSdkRoot : $(Agent.ToolsDirectory)\ jdk21
4+ javaSdkRoot : $(Agent.ToolsDirectory)/ jdk21
55
66steps :
77 # before the build starts, make sure the tooling is as expected. Clear the cache on shared agents
@@ -44,31 +44,10 @@ steps:
4444 }
4545 displayName: Install .NET Workloads
4646
47- - bash : |
48- if [[ -n "$JAVA_HOME_21_X64" && -d "$JAVA_HOME_21_X64" ]]; then
49- echo "##vso[task.setvariable variable=JAVA_HOME]$JAVA_HOME_21_X64"
50- else
51- JDK_DIR="$(Agent.ToolsDirectory)/jdk-21"
52- TEMP_FILE="$(Agent.TempDirectory)/microsoft-jdk-21.tar.gz"
53- if [[ ! -d "$JDK_DIR" || ! -f "$JDK_DIR/bin/java" ]]; then
54- echo "Downloading Microsoft JDK 21 for macOS..."
55- mkdir -p "$JDK_DIR"
56- curl -L "https://aka.ms/download-jdk/microsoft-jdk-21.0.8-macos-x64.tar.gz" -o "$TEMP_FILE"
57- tar -xzf "$TEMP_FILE" -C "$JDK_DIR" --strip-components=4
58- rm "$TEMP_FILE"
59- fi
60- echo "##vso[task.setvariable variable=JAVA_HOME]$JDK_DIR"
61- fi
62- displayName: Use Java 21 SDK (Mac)
63- condition: eq( variables['Agent.OS'], 'Darwin' )
64-
65- - task : JavaToolInstaller@0
66- displayName : Use Java 21 SDK (Windows)
67- condition : and(eq( variables['Agent.OS'], 'Windows_NT' ), ne(${{ parameters.installAndroidDependencies }}, true))
68- inputs :
69- versionSpec : ' 21'
70- jdkArchitectureOption : ' x64'
71- jdkSourceOption : ' PreInstalled'
47+ - template : install-java.yml
48+ parameters :
49+ jdkVersion : ' 21.0.8'
50+ jdkDestinationDirectory : ${{ parameters.javaSdkRoot }}
7251
7352 - pwsh : |
7453 if (Test-Path "${{ parameters.androidSdkRoot }}") {
@@ -78,17 +57,6 @@ steps:
7857 displayName: Clean and create Android SDK directory
7958 condition: eq(${{ parameters.installAndroidDependencies }}, true)
8059
81- - task : DotNetCoreCLI@2
82- displayName : Install android dependencies GoogleV2
83- inputs :
84- command : build
85- projects : build/scripts/provision-android/provision-android.csproj
86- arguments : >-
87- -t:InstallAndroidDependencies -p:AcceptAndroidSdkLicenses=true -p:AndroidManifestType=GoogleV2
88- -p:AndroidSdkDirectory=${{ parameters.androidSdkRoot }}
89- -v:n -bl:output/install-android-dependencies-GoogleV2.binlog
90- retryCountOnTaskFailure : 3
91-
9260 - task : DotNetCoreCLI@2
9361 displayName : Install android dependencies Xamarin
9462 inputs :
@@ -100,30 +68,26 @@ steps:
10068 -v:n -bl:output/install-android-dependencies-Xamarin.binlog
10169 retryCountOnTaskFailure : 3
10270
71+ - pwsh : |
72+ $ErrorActionPreference = 'Stop'
73+ $sdkManager = Join-Path "${{ parameters.androidSdkRoot }}" "cmdline-tools" "latest" "bin" "sdkmanager"
74+ if ($IsWindows) {
75+ $sdkManager += ".bat"
76+ }
77+
78+ if (Test-Path $sdkManager) {
79+ Write-Host "Accepting Android SDK licenses..."
80+ Write-Host "y" | & $sdkManager --licenses --sdk_root="${{ parameters.androidSdkRoot }}"
81+ } else {
82+ Write-Host "SDK Manager not found at: $sdkManager"
83+ }
84+ displayName: Accept Android SDK licenses
85+ condition: eq(${{ parameters.installAndroidDependencies }}, true)
86+
10387 - pwsh : |
10488 Write-Host "##vso[task.setvariable variable=AndroidSdkDirectory]${{ parameters.androidSdkRoot }}"
10589 Write-Host "##vso[task.setvariable variable=ANDROID_SDK_ROOT]${{ parameters.androidSdkRoot }}"
10690 Write-Host "##vso[task.setvariable variable=ANDROID_HOME]${{ parameters.androidSdkRoot }}"
10791 displayName: Set ANDROID_SDK_ROOT and ANDROID_HOME to ${{ parameters.androidSdkRoot }}
10892
109- - ${{ if eq(parameters.installAndroidDependencies, true) }} :
110- - pwsh : |
111- $url = "https://aka.ms/download-jdk/microsoft-jdk-21.0.8-windows-x64.zip"
112- if ($IsMacOS) {
113- $url = "https://aka.ms/download-jdk/microsoft-jdk-21.0.8-macos-x64.tar.gz"
114- }
115- $fileName = [System.IO.Path]::GetFileName($url)
116- Invoke-WebRequest -Uri $url -OutFile $fileName
117- Write-Host "##vso[task.setvariable variable=JDK_21_FILE_PATH]$(Build.StagingDirectory)/$fileName"
118- displayName: Download Java 21 SDK
119- workingDirectory: $(Build.StagingDirectory)
12093
121- - task : JavaToolInstaller@0
122- displayName : Use Java 21 SDK
123- inputs :
124- versionSpec : ' 21'
125- jdkArchitectureOption : ' x64'
126- jdkSourceOption : LocalDirectory
127- jdkFile : $(JDK_21_FILE_PATH)
128- jdkDestinationDirectory : ${{ parameters.javaSdkRoot }}
129- cleanDestinationDirectory : true
0 commit comments