Skip to content

[Fleet Monitor] petry-projects/google-app-scripts β€” .github/workflows/coverage.ymlΒ #390

Closed

Description

@don-petry

🟠 DEGRADED: petry-projects/google-app-scripts / .github/workflows/coverage.yml

Metric Value
Failure Rate 33.3% (12 / 36 runs)
Status DEGRADED
p50 Duration 45s
p95 Duration 117s
Successful Runs 24
Cancelled Runs 0

Workflow: .github/workflows/coverage.yml

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

Activity

  1. don-petry commented on Jun 15, 2026

    @don-petry
    CollaboratorAuthor

    Dev-Lead Implementation Plan

    Issue: #390 β€” [Fleet Monitor] petry-projects/google-app-scripts β€” .github/workflows/coverage.yml

    Root-Cause Analysis

    The Coverage workflow is reported as DEGRADED (33.3% failure rate, 12/36). Inspecting the
    last 60 runs shows zero genuine test failures β€” the counted "failures" are all
    action_required conclusions:

    • 48 success, 12 action_required, 0 real failure.
    • All 12 action_required runs come from just 3 stale dev-lead PR branches
      (issue-271, issue-237, issue-156), each re-triggered ~4 times by rebase/push.
    • Because coverage.yml has no concurrency group, every new push to a branch starts a
      fresh run while the previous pending (awaiting-approval) run is left dangling in
      action_required. They accumulate and the Fleet Monitor counts each as a failure.

    Scope

    Add a per-ref concurrency group with cancel-in-progress: true to coverage.yml so
    superseded/pending runs on the same branch are automatically cancelled instead of piling up
    as action_required. This matches the established convention already used by 4 other
    workflows in this repo (auto-rebase, dependabot-rebase, feature-ideation, ci-failure-analyst).

    Implementation Checklist

    • Add a top-level concurrency block to .github/workflows/coverage.yml

    Tests to Write

    • N/A β€” this is a CI configuration change to a workflow YAML. There is no JS/GAS logic
      surface and the repo has no workflow-YAML test harness. Per the Phase 2 exception for
      configuration changes, TDD is skipped; verification is done via lint + the existing
      full test suite to confirm no regressions.

    Test Command

    bash .dev-lead/scripts/dev-lead-lint.sh && npm run check && npm test

  2. don-petry commented on Jun 15, 2026

    @don-petry
    CollaboratorAuthor

    Dev-Lead: Implementation Complete

    Root Cause

    The DEGRADED status was not caused by failing tests. Over the last 60 runs:
    48 success, 12 action_required, 0 genuine failure. All 12 action_required runs came from
    3 stale dev-lead PR branches (issue-271, issue-237, issue-156), each re-triggered ~4
    times. With no concurrency group, every push spawned a new run while the previous pending
    (awaiting-approval) run was left dangling in action_required β€” these accumulate and the
    fleet monitor counts each as a failure.

    Fix

    Added a per-ref concurrency group with cancel-in-progress: true to coverage.yml, so a
    new push to a branch cancels its superseded pending run instead of letting it pile up. This
    matches the concurrency convention already used by 4 other workflows in the repo
    (cancel-in-progress: true is chosen here β€” vs. false in the rebase/merge automations β€”
    because this is a read-only test workflow where only the latest commit's result matters).

    Plan Execution

    • Diagnosed failure mode via gh run list (no real test failures; redundant action_required runs)
    • Added concurrency block to .github/workflows/coverage.yml
    • Verified formatting (prettier), npm run check, full test suite, and coverage gate

    Test Results

    Test Suites: 12 passed, 12 total
    Tests:       301 passed, 301 total
    Snapshots:   0 total
    Time:        5.001 s
    
    πŸ“Š Coverage Report:
    βœ… statements     : 98.91% (999/1010) [required: 95%]
    βœ… branches       : 90.00% (558/620) [required: 85%]
    βœ… functions      : 98.00% (98/100) [required: 95%]
    βœ… lines          : 100% (0/0) [required: 100%]
    βœ… All coverage metrics meet requirements.
    

    npm run check β†’ exit 0 (warnings only, all pre-existing).

    Files Changed

    • .github/workflows/coverage.yml: added top-level concurrency group keyed on
      ${{ github.workflow }}-${{ github.ref }} with cancel-in-progress: true.

    Notes

    • Phase 2 (TDD) exception: this is a CI configuration change to a workflow YAML. There is
      no JS/GAS logic surface and the repo has no workflow-YAML test harness, so TDD does not
      apply. Verified via lint + the existing full suite (no regressions).
    • Pre-existing, unrelated lint warnings: .dev-lead/scripts/dev-lead-lint.sh exits 1 due
      to two SC2043 shellcheck warnings in scripts/apply-repo-settings.sh:40 and
      scripts/setup-code-quality-ruleset.sh:39. These exist on main, are unrelated to
      issue [Fleet Monitor] petry-projects/google-app-scripts β€” .github/workflows/coverage.ymlΒ #390, and were left untouched per the "do not modify unrelated files" constraint.
      Possible follow-up: a separate cleanup PR to silence those SC2043 warnings.
  3. don-petry commented on Jun 15, 2026

    @don-petry
    CollaboratorAuthor

    Dev-Lead: Lint Check Failed

    The implementation for issue #390 contained lint errors. The commit was aborted to prevent a CI failure.

      [lint] shellcheck on 4 file(s)...
    
    In scripts/apply-repo-settings.sh line 40:
    for cmd in gh; do
               ^-- SC2043 (warning): This loop will only ever run once. Bad quoting or missing glob/expansion?
    
    
    In scripts/setup-code-quality-ruleset.sh line 39:
    for cmd in gh; do
               ^-- SC2043 (warning): This loop will only ever run once. Bad quoting or missing glob/expansion?
    
    For more information:
      https://www.shellcheck.net/wiki/SC2043 -- This loop will only ever run once...
    

    To retry: fix the lint errors locally (or re-apply the dev-lead label β€” the agent will try again).

  4. don-petry commented on Jul 15, 2026

    @don-petry
    CollaboratorAuthor

    βœ… Auto-resolved by Fleet Monitor. This workflow's failure rate has been below the 10% threshold (or the workflow was removed) since 2026-06-15 (30 days) β€” the monitor stopped flagging it. Closing. It will reopen automatically if the workflow crosses the threshold again.

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