diff --git a/images/macos/helpers/Common.Helpers.psm1 b/images/macos/helpers/Common.Helpers.psm1 index 638899dca..9c8f2caca 100644 --- a/images/macos/helpers/Common.Helpers.psm1 +++ b/images/macos/helpers/Common.Helpers.psm1 @@ -86,14 +86,38 @@ function Invoke-RestMethodWithRetry { function Invoke-ValidateCommand { param( [Parameter(Mandatory)] - [string]$Command + [string]$Command, + [Uint] $Timeout = 0 ) - $output = Invoke-Expression -Command $Command - if ($LASTEXITCODE -ne 0) { - throw "Command '$Command' has finished with exit code $LASTEXITCODE" + if ($Timeout -eq 0) + { + $output = Invoke-Expression -Command $Command + if ($LASTEXITCODE -ne 0) { + throw "Command '$Command' has finished with exit code $LASTEXITCODE" + } + return $output + } + else + { + $job = $command | Start-Job -ScriptBlock { + $output = Invoke-Expression -Command $input + if ($LASTEXITCODE -ne 0) { + throw 'Command failed' + } + return $output + } + $waitObject = $job | Wait-Job -Timeout $Timeout + if(-not $waitObject) + { + throw "Command '$Command' has timed out" + } + if($waitObject.State -eq 'Failed') + { + throw "Command '$Command' has failed" + } + Receive-Job -Job $job } - return $output } function Start-DownloadWithRetry { diff --git a/images/macos/helpers/Xcode.Installer.psm1 b/images/macos/helpers/Xcode.Installer.psm1 index 25eaeef1a..69c8c33d5 100644 --- a/images/macos/helpers/Xcode.Installer.psm1 +++ b/images/macos/helpers/Xcode.Installer.psm1 @@ -129,10 +129,7 @@ function Approve-XcodeLicense { $XcodeRootPath = Get-XcodeRootPath -Version $Version Write-Host "Approving Xcode license for '$XcodeRootPath'..." $xcodeBuildPath = Get-XcodeToolPath -XcodeRootPath $XcodeRootPath -ToolName "xcodebuild" - try { - Invoke-Expression -Command "sudo $xcodeBuildPath -license accept" 2>&1 | Out-Null - } catch { } - + Invoke-ValidateCommand -Command "sudo $xcodeBuildPath -license accept" -Timeout 15 } function Install-XcodeAdditionalPackages { diff --git a/images/macos/toolsets/toolset-13.json b/images/macos/toolsets/toolset-13.json index f2b21304c..2606b4d0e 100644 --- a/images/macos/toolsets/toolset-13.json +++ b/images/macos/toolsets/toolset-13.json @@ -3,7 +3,7 @@ "default": "14.2", "x64": { "versions": [ - { "link": "15.0", "version": "15.0.0-Beta.5+15A5209g" }, + { "link": "15.0", "version": "15.0.0-Beta.6+15A5219j" }, { "link": "14.3.1", "version": "14.3.1+14E300c" }, { "link": "14.3", "version": "14.3.0+14E222b" }, { "link": "14.2", "version": "14.2.0+14C18" }, @@ -12,7 +12,7 @@ }, "arm64":{ "versions": [ - { "link": "15.0", "version": "15.0.0-Beta.5+15A5209g" }, + { "link": "15.0", "version": "15.0.0-Beta.6+15A5219j" }, { "link": "14.3.1", "version": "14.3.1+14E300c" }, { "link": "14.3", "version": "14.3.0+14E222b" }, { "link": "14.2", "version": "14.2.0+14C18" },