Skip to content

web-deploy.yml blog-baseline auto-refresh permanently broken by develop branch protection #2915

Description

@bpamiri

Problem

The post-merge blog visual-baseline auto-refresh in .github/workflows/web-deploy.yml ("Commit pre-refreshed blog baseline" step, git push origin HEAD:develop at ~line 328) is rejected by the develop branch-protection rule: GH013: Changes must be made through a pull request. All 5 retries fail, so the refreshed web/tests/visual-baselines/blog.png never lands.

Observed concretely after #2896 (commit 0ec62e4d4) published the 4.0.3 release post: develop run 27254568247 pre-refreshed the baseline but could not push it back, leaving the baseline stale on develop. Every subsequent web/**-touching PR (e.g. #2913) then fails the Visual regression check with a deterministic ~60k-pixel diff (the new post card shifting the blog index) until someone refreshes manually.

Impact

Every blog-post merge strands a stale baseline and red-Xes all later web-touching PRs — manual refresh-visual-baselines.yml runs are needed each time. Silent failure mode: the deploy run itself stays green.

Suggested approach

Convert the auto-refresh push to a PR + auto-merge flow, same pattern as refresh-packages-baseline.yml. Note the PAT used must have Pull-requests: write in addition to Contents: write, or the auto-merge step fails silently (prior art: the scoop/homebrew auto-update chain).

Acceptance criteria

  • Merging a blog post to develop results in the refreshed blog baseline landing on develop without manual intervention (via auto-merged PR).
  • A subsequent web/** PR passes Visual regression without a manual baseline refresh.

Source

Found during the 2026-06-09 framework-review remediation campaign while diagnosing the #2913 Visual-regression failure.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions