Skip to content

fix(ci): serialize concurrent gh-pages deploys - #95

Open
TimeToBuildBob wants to merge 1 commit into
masterfrom
ci/pages-deploy-concurrency
Open

TimeToBuildBob wants to merge 1 commit into
masterfrom
ci/pages-deploy-concurrency

Conversation

@TimeToBuildBob

Copy link
Copy Markdown
Owner

Why

Master CI run 35056225053 failed deploying 8feb760e (docs(blog): publish it-found-the-dead-analytics-it-called-them-p2). The Build step succeeded; Deploy failed with:

! [remote rejected] ... -> gh-pages (cannot lock ref 'refs/heads/gh-pages':
  is at 7ed346e3... but expected fa0eaee4...)

Cause: two master pushes 9 seconds apart (8feb760e at 04:36:02Z, 7fd414e5 at 04:36:11Z) both force-pushed gh-pages via JamesIves. The later run succeeded and is an ancestor of HEAD, so the failed SHA's content is already live. Do not rerun 35056225053 — that would roll gh-pages back to the older SHA.

Change

Add a per-ref concurrency group on pages.yml:

  • master: serialize, do not cancel in-progress deploys (GitHub Pages starter pattern)
  • other branches: cancel superseded in-progress builds

Checks

  • Failed SHA 8feb760e is parent of current master 7fd414e5
  • Later master run 35056234103 conclusion=success
  • Pre-commit (check-yaml) passed
  • CI on this PR (do not --watch)

No site content change.

Two master pushes nine seconds apart raced JamesIves' force-push
(`cannot lock ref` on gh-pages). The later SHA already deployed;
this stops the next pair from failing the same way.

Git-Session-Id: a7931123-aeaf-5b22-8f8c-14ffd00e1b70
@TimeToBuildBob

Copy link
Copy Markdown
Owner Author

Review guide (auto-posted)

Structured warm-up for reviewers — what changed, what to run, where to look.

Key files

  • .github/workflows/pages.yml (+9/-0, Δ9)

Suggested verification

  • Run the repo's usual CI-equivalent checks locally

Known risks / watch points

  • No automatic high-risk tags; use file list + diff for judgment.

Suggested review focus

  • Confirm behavior matches the PR description acceptance criteria.
  • Skim the largest diffs first (listed above).
  • If CI is green, spot-check the highest-risk paths called out here.

Generated by scripts/github/pr-warmup-review-guide.py for #95.

@TimeToBuildBob

Copy link
Copy Markdown
Owner Author

CI-green and mergeable — waiting only on a maintainer click.

Self-merge not eligible here (policy gate): .github/workflows/pages.yml is a sensitive/infra path. Waiting for human review or merge.

@TimeToBuildBob

TimeToBuildBob commented Sep 16, 2026

Copy link
Copy Markdown
Owner Author

🤖 AI code review

Adds a concurrency block to the GitHub Pages workflow that groups runs by workflow name and git ref. The cancel-in-progress flag is set to false for the master branch and true for all other branches, serializing master deploys while cancelling superseded feature-branch builds.

Safe to merge — no P0/P1 findings

Confidence 5/5

No thread-worthy findings. Advisory notes follow; they are retained without opening review threads.

1 advisory finding (summary-only, not scored)

These P2 guard, heuristic, trade-off, or documentation claims are retained for judgment without opening review threads.

⚠️ P2 medium.github/workflows/pages.yml

This is a fix(...) PR but no test files are included in the diff. Erik's feedback: 'where is the repro & fixes they are supposed to catch' (gptme#3441), 'that measurement should come with a regression test' (gptme#3446). Add a test that would have caught this bug. (Advisory: Erik merged all such PRs but consistently requested tests.)

Add a test file that reproduces the bug before the fix and passes after it.

How this was verified: static preflight: fix-commit + touched-files scan (rule 7)

Files changed (1) — the diff as I read it
  • .github/workflows/pages.yml — Adds a concurrency block with a per-ref group and a cancel-in-progress expression that is false on master and true elsewhere.

Reviewed 570c19bc08a6 · openrouter/deepseek/deepseek-v4-flash-0731 · llm engine · 402s · about this reviewer

Maintainer commands

@TimeToBuildBob review (own line) — fresh review · @TimeToBuildBob fix — a worker acts on the findings. Once per comment; 👀 = received.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant