Skip to content

[Fleet Monitor] petry-projects/broodly β€” sonarcloud.ymlΒ #287

Closed

Description

@don-petry

🟠 DEGRADED: petry-projects/broodly / sonarcloud.yml

Metric Value
Failure Rate 26.7% (8 / 30 runs)
Status DEGRADED
p50 Duration 60s
p95 Duration 310s
Successful Runs 22
Cancelled Runs 0

Workflow: sonarcloud.yml

Last updated by Fleet Monitor run on 2026-06-04.
Threshold: failure rate > 10% over the monitored window.

Activity

  1. don-petry commented on Jun 4, 2026

    @don-petry
    ContributorAuthor

    Dev-Lead Implementation Plan

    Issue: #287 β€” [Fleet Monitor] petry-projects/broodly β€” sonarcloud.yml

    Root Cause

    All 8 failures share a single error: Action failed: Unexpected HTTP response: 403 when the SonarSource/sonarqube-scan-action attempts to download sonar-scanner-cli-8.1.0.6389-linux-x64.zip from binaries.sonarsource.com. This is an intermittent CDN 403 from SonarSource's binary distribution, not a code-quality issue. The action has no built-in retry, so every transient network hiccup produces a full workflow failure.

    Scope

    Replace the single sonarcloud scan step with a 3-attempt retry pattern using the same pinned action SHA. No new action dependencies are introduced.

    Implementation Checklist

    • .github/workflows/sonarcloud.yml β€” replace the single SonarSource/sonarqube-scan-action step with three sequential retry steps: attempt 1 and 2 set continue-on-error: true; attempt 2 runs only if attempt 1 failed; attempt 3 (no continue-on-error) runs only if attempt 2 failed

    Tests to Write

    • No unit tests apply to pure YAML workflow configuration (TDD exception). Correctness is validated by YAML syntax check (yq) and by the workflow running successfully in CI after merge.

    Test Command

    yq eval .github/workflows/sonarcloud.yml (syntax validation)

    Retry probability analysis

    With a 26.7% per-attempt failure rate, the probability that all 3 independent attempts fail is β‰ˆ 0.267Β³ β‰ˆ 1.9%, which is below the 10% fleet-monitor threshold.

  2. don-petry commented on Jun 4, 2026

    @don-petry
    ContributorAuthor

    Dev-Lead: Implementation Complete

    Root Cause

    All 8 failures shared a single error:

    ##[error]Action failed: Unexpected HTTP response: 403
    

    Triggered when SonarSource/sonarqube-scan-action downloaded sonar-scanner-cli-8.1.0.6389-linux-x64.zip from binaries.sonarsource.com. The action has no built-in retry, so every transient CDN 403 caused a full workflow failure.

    Plan Execution

    • Identified root cause from run logs: intermittent HTTP 403 on scanner binary download
    • Replaced single scan step with 3-attempt retry pattern (same pinned SHA, no new dependencies)
    • Validated YAML syntax with Python yaml.safe_load
    • Reviewed diff for correctness

    Retry Logic

    Scenario Result
    Attempt 1 succeeds Attempts 2 & 3 skipped β€” job passes
    Attempt 1 fails, attempt 2 succeeds Attempt 3 skipped β€” job passes
    All 3 fail Job fails (real persistent failure)
    SONAR_TOKEN empty All 3 skipped β€” job passes

    Probability all 3 independent attempts fail: 0.267Β³ β‰ˆ 1.9%, below the 10% fleet-monitor threshold.

    Test Results

    YAML syntax OK
    

    (TDD exception: pure YAML configuration change β€” no observable behavioral unit to test before implementing. Validated via YAML parse and manual logic walkthrough.)

    Files Changed

    • .github/workflows/sonarcloud.yml: replaced single SonarCloud Scan step with three sequential retry steps (sonar_1, sonar_2, sonar_3); attempts 1 and 2 use continue-on-error: true; attempt 2 runs only if attempt 1 failed; attempt 3 runs only if attempt 2 failed

    Notes

    • No new external action dependencies introduced β€” all three steps pin the same SHA (7006c4492b2e0ee0f816d36501671557c97f5995)
    • Real quality gate failures will still fail the job (all 3 attempts would fail identically)
    • If SonarSource's CDN stabilises, the retries are no-ops with negligible overhead
  3. added a commit that references this issue on Jun 8, 2026
  4. added 2 commits that reference this issue on Jun 19, 2026
  5. added 5 commits that reference this issue on Aug 4, 2026
  6. added a commit that references this issue on Aug 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions