Skip to content

Commit d3d7c7c

Browse files
fernandotononclaude
andcommitted
ci(windows): make Doxygen install resilient (retry + fail-soft)
The release build-n-cache-ogre-windows job failed on a flaky doxygen.nl download ("Install Doxygen"). Doxygen is only used for Ogre docs, so retry the download 3× and continue with a warning if it's still unavailable instead of failing the whole release. Switched from cmd+curl to PowerShell Invoke-WebRequest with a timeout. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 9d7b8ec commit d3d7c7c

1 file changed

Lines changed: 20 additions & 3 deletions

File tree

.github/workflows/deploy.yml

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -228,10 +228,27 @@ jobs:
228228

229229
- if: steps.cache-ogre-windows.outputs.cache-hit != 'true'
230230
name: Install Doxygen
231-
shell: cmd
231+
shell: powershell
232232
run: |
233-
curl -L -o doxygen-installer.exe "https://www.doxygen.nl/files/doxygen-1.9.7-setup.exe"
234-
doxygen-installer.exe /VERYSILENT
233+
# Doxygen is optional for the Ogre build (only used for docs); the
234+
# doxygen.nl download is flaky, so retry a few times and never fail the
235+
# job on it — Ogre configures fine without it.
236+
$url = "https://www.doxygen.nl/files/doxygen-1.9.7-setup.exe"
237+
$ok = $false
238+
for ($i = 1; $i -le 3; $i++) {
239+
try {
240+
Invoke-WebRequest -Uri $url -OutFile doxygen-installer.exe -TimeoutSec 120
241+
$ok = $true; break
242+
} catch {
243+
Write-Host "Doxygen download attempt $i failed: $_"
244+
Start-Sleep -Seconds 10
245+
}
246+
}
247+
if ($ok) {
248+
Start-Process -FilePath .\doxygen-installer.exe -ArgumentList '/VERYSILENT' -Wait
249+
} else {
250+
Write-Host "::warning::Doxygen unavailable after retries; continuing without it (docs only)."
251+
}
235252
236253
- if: steps.cache-ogre-windows.outputs.cache-hit != 'true'
237254
name: Check out ogre repo

0 commit comments

Comments
 (0)