Repository navigation
Release through a SonarQube Cloud outage - #32
Merged
Merged
Conversation
A CloudFront 502 during the analysis upload failed ImGuiApp's release run on 2026-09-30. The version had already been pushed to main, so it was never released and the run could not be rerun. The scanner's own output now decides whether a failure was an outage: a server error, a failed connection, or no answer from the service. An outage at the probe, at begin or at end sets an `outage` output and the Release step goes ahead without a gate, including where SONAR_BLOCKING_GATE makes the gate blocking. A quality gate that was evaluated and failed still blocks, and any other scanner failure still fails the run. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CZA63NZqPgeDNmUhhMaXcH
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Matt · project thread
Before: if SonarCloud returned a server error during the analysis upload, the release run failed and nothing was released. This happened to ImGuiApp on 2026-09-30 (run): a CloudFront
502came back fromapi.sonarcloud.io/analysis/analyses. The outage check after the failure only asked whether/api/server/versionanswered, and it did, so the failure counted as real. WithSONAR_BLOCKING_GATEset, End SonarQube also exited before checking anything. By then the metadata commit for 3.58.0 was already on main, so a rerun could only fail with a non-fast-forward push.After: a SonarCloud outage never holds a release, whether the quality gate is advisory or blocking. The run posts a warning and a step summary saying it released without a gate. A quality gate that SonarCloud evaluated and failed still blocks a release where
SONAR_BLOCKING_GATEis set. Any other scanner failure, such as a bad token or a rejected analysis, still fails the run.How:
sonar-helpers.ps1toRUNNER_TEMP, and Begin and End both dot-source it.QUALITY GATE STATUS: FAILEDis a gate failure.Error 5xx on https://…, a 502/503/504 page, or a Java connection exception is an outage./api/server/versionprobe decides: no answer means an outage, an answer means a real failure.outageoutput and exits 0..sonarqube, so the build does not pick up a half-written analysis config.began == 'true').outageoutputs is set. A missingSONAR_TOKENstill holds a release under a blocking gate, as before.docs/shared-ci.mdhas a short section on this behaviour.I tested the Begin and End scripts locally with pwsh 7.5 against a stub scanner. Covered cases:
The stub runs under
$ErrorActionPreference = 'stop', as GitHub's wrapper does.Not changed:
dotnet-private.ymlhas no blocking gate and does not release, so I left it alone.@release, so this has no effect until thereleasetag is promoted.🤖 Generated with Claude Code
https://claude.ai/code/session_01CZA63NZqPgeDNmUhhMaXcH
Generated by Claude Code