diff --git a/eng/pipelines/templates/jobs/ci.tests.yml b/eng/pipelines/templates/jobs/ci.tests.yml index 6ec9de92541d..fdf148f93e98 100644 --- a/eng/pipelines/templates/jobs/ci.tests.yml +++ b/eng/pipelines/templates/jobs/ci.tests.yml @@ -110,8 +110,6 @@ jobs: ServiceDirectory: ${{parameters.ServiceDirectory}} ExcludePaths: ${{parameters.ExcludePaths}} - - template: /eng/pipelines/templates/steps/install-java8-macos.yml - - template: /eng/common/testproxy/test-proxy-tool.yml parameters: runProxy: true diff --git a/eng/pipelines/templates/steps/install-java8-macos.yml b/eng/pipelines/templates/steps/install-java8-macos.yml deleted file mode 100644 index f4ed42f82d26..000000000000 --- a/eng/pipelines/templates/steps/install-java8-macos.yml +++ /dev/null @@ -1,43 +0,0 @@ -steps: - - task: PowerShell@2 - displayName: 'Install Java 8 JDK on macOS 15' - inputs: - pwsh: true - targetType: 'inline' - script: | - # Check macOS version - $osVersion = sw_vers -productVersion 2>$null - Write-Host "Current macOS version: $osVersion" - - if ($osVersion -match '^(\d+)\.') { - $majorVersion = [int]$matches[1] - Write-Host "Detected macOS major version: $majorVersion" - - if ($majorVersion -ge 15) { - Write-Host "macOS $majorVersion detected (15 or higher). Proceeding with Java 8 installation." - Write-Host "##vso[task.setvariable variable=MacOS_Latest]true" - - # Call the existing installation script - & "$(Build.SourcesDirectory)/eng/scripts/Install-Latest-JDK.ps1" -JdkFeatureVersion 8 - } else { - Write-Host "macOS version is $osVersion (major version $majorVersion), which is lower than 15. Skipping Java 8 installation." - } - } else { - Write-Error "Failed parse macOS version '$osVersion'." - } - - workingDirectory: $(Agent.BuildDirectory) - condition: and(eq(variables['JavaTestVersion'], '1.8'), eq(variables['Agent.OS'], 'Darwin')) - - - pwsh: | - Write-Host "JAVA_HOME_8_X64: $Env:JAVA_HOME_8_X64" - $macOsJavaHome = Join-Path $Env:JAVA_HOME_8_X64 "Contents/Home" - - if (Test-Path $macOsJavaHome) { - Write-Host "##vso[task.setvariable variable=JAVA_HOME_8_X64]$macOsJavaHome" - Write-Host "Updated JAVA_HOME_8_X64 to: $macOsJavaHome" - } else { - Write-Host "Failed to find Java 8 at: $macOsJavaHome" - } - displayName: 'Verify Java 8 Install' - condition: and(eq(variables['JavaTestVersion'], '1.8'), eq(variables['Agent.OS'], 'Darwin'), eq(variables['MacOS_Latest'], 'true')) diff --git a/eng/pipelines/templates/steps/install-latest-jdk.yml b/eng/pipelines/templates/steps/install-latest-jdk.yml index 8149c86e16d1..3c7273d81938 100644 --- a/eng/pipelines/templates/steps/install-latest-jdk.yml +++ b/eng/pipelines/templates/steps/install-latest-jdk.yml @@ -31,3 +31,13 @@ steps: Write-Host "Latest JDK: $Env:JAVA_HOME_${{ parameters.LatestJdkFeatureVersion }}_X64" displayName: 'Verify Latest JDK Install' condition: eq(variables['IsLatestNonLtsJdk'], 'true') + + - task: PowerShell@2 + displayName: 'Install JDK 8 on macOS' + inputs: + pwsh: true + arguments: > + -JdkFeatureVersion 8 + workingDirectory: $(Agent.BuildDirectory) + filePath: eng/scripts/Install-Latest-JDK.ps1 + condition: eq(variables['Agent.OS'], 'Darwin') diff --git a/eng/scripts/Install-Latest-JDK.ps1 b/eng/scripts/Install-Latest-JDK.ps1 index c5ae818508b8..4a6c472a7285 100644 --- a/eng/scripts/Install-Latest-JDK.ps1 +++ b/eng/scripts/Install-Latest-JDK.ps1 @@ -16,6 +16,19 @@ if ($IsWindows) { $os = "linux" } +$jdkFeatureVersionJavaHome = "JAVA_HOME_" + $JdkFeatureVersion + "_X64" +Write-Host "Checking if $jdkFeatureVersionJavaHome is already set and exists..." +$javaHomeValue = [System.Environment]::GetEnvironmentVariable($jdkFeatureVersionJavaHome) +if ($javaHomeValue) { + $jdkBinPath = Join-Path -Path $javaHomeValue -ChildPath "bin/java" + if (Test-Path -Path $jdkBinPath) { + Write-Host "$jdkFeatureVersionJavaHome is already set to $javaHomeValue" + exit 0 + } +} else { + Write-Host "$jdkFeatureVersionJavaHome is not set, proceeding with installation..." +} + $getInstalls = "$adoptiumApiUrl/v3/assets/latest/$JdkFeatureVersion/hotspot?architecture=x64&image_type=jdk&os=$os&vendor=eclipse" $jdkUnzipName = "jdk-$JdkFeatureVersion" @@ -43,11 +56,22 @@ if (!(Test-Path -Path $jdkUnzipName -PathType container)) { } $javaHome = (Convert-Path $jdkUnzipName) -Write-Host "Latest JDK: $javaHome" +if ($IsMacOS) { + # On macOS, the JDK is inside a subdirectory of the unzipped folder. + $correctJavaHome = Join-Path -Path $javaHome -ChildPath "Contents/Home" + $javaBinPath = Join-Path -Path $correctJavaHome -ChildPath "bin/java" + if (Test-Path $javaBinPath) { + $javaHome = $correctJavaHome + Write-Host "Updated JAVA_HOME on macOS: $correctJavaHome" + } else { + Write-Error "Failed to find Java at: $correctJavaHome" + exit 1 + } +} + +Write-Host "Latest JDK: $javaHome" Write-Host "Current JAVA_HOME: $Env:JAVA_HOME" Write-Host "##vso[task.setvariable variable=JAVA_HOME;]$javaHome" -Write-Host "Updated JAVA_HOME: $Env:JAVA_HOME" - -$jdkFeatureVersionJavaHome = "JAVA_HOME_" + $JdkFeatureVersion + "_X64" +Write-Host "Updated JAVA_HOME to : $javaHome" Write-Host "##vso[task.setvariable variable=$jdkFeatureVersionJavaHome;]$javaHome"