Skip to content

Commit 18fbd9c

Browse files
[build] check if $(JAVA_HOME_21_X64) exists and provision JDK 21 (#1249)
Builds on the `main` branch fail with: ERROR: JAVA_HOME is set to an invalid directory: /Library/Java/JavaVirtualMachines/microsoft-21.jdk/Contents/Home The current code is checking the `$(Agent.Name)`, but it should just check if the directory exists. Additionally, we can provision JDK 21 if needed.
1 parent 194faba commit 18fbd9c

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

build/ci/setup-environment.yml

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,19 @@ steps:
4545
displayName: Install .NET Workloads
4646
4747
- bash: |
48-
if [[ "$(Agent.Name)" == *"Azure Pipelines"* ]]; then
49-
echo "##vso[task.setvariable variable=JAVA_HOME]$(JAVA_HOME_21_X64)"
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"
5050
else
51-
echo "##vso[task.setvariable variable=JAVA_HOME]/Library/Java/JavaVirtualMachines/microsoft-21.jdk/Contents/Home"
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"
5261
fi
5362
displayName: Use Java 21 SDK (Mac)
5463
condition: eq( variables['Agent.OS'], 'Darwin' )

0 commit comments

Comments
 (0)