ci(autoupdate): drop synchronize trigger (stop runner storm), keep draft PRs updated #262

Closed
opened 2026-07-03 20:13:42 +00:00 by JMR-dev · 0 comments
JMR-dev commented 2026-07-03 20:13:42 +00:00 (Migrated from github.com)

Context

The autoupdate pull_request trigger (added in #260) fires on the default event set — including synchronize — so every commit push to any open PR triggers a rebase-of-all-PRs (PR_FILTER: all), each re-running the full multi-API E2E matrix. With many concurrent PRs this storms the GitHub Actions runners (observed 2026-07-03; the workflow is currently disabled to relieve it). Repo owner confirmed tightening the trigger, and explicitly requires that draft PRs still get updated.

Change (.github/workflows/autoupdate.yml)

  1. Drop synchronize — narrow the trigger to:
  pull_request:
    types: [opened, reopened, ready_for_review]
    branches: [main]
  1. Explicitly keep draft PRs in scope by pinning the action's ready-state filter:
        env:
          GITHUB_TOKEN: ${{ secrets.AUTOUPDATE_TOKEN || secrets.GITHUB_TOKEN }}
          PR_FILTER: "all"
          PR_READY_STATE: "all"
          MERGE_CONFLICT_ACTION: "ignore"

(PR_READY_STATE: all is the action default, but set it explicitly so drafts are guaranteed updated.)

Why drafts still get updated (dropping synchronize does NOT exclude them)

  • push: [main] rebases ALL behind PRs incl. drafts whenever main advances (PR_FILTER: all + PR_READY_STATE: all) — this is the case that matters, since a PR goes stale when main moves.
  • opened catches a draft opened while already behind.
  • synchronize was only firing on per-commit pushes to a PR — a PR getting a new commit doesn't make it behind main, so removing it doesn't leave drafts (or any PR) stale.

Sequencing

Workflow is currently disabled. Apply this tightening and merge it BEFORE re-enabling so autoupdate comes back storm-safe. Re-enable (gh workflow enable autoupdate.yml) only once the in-flight test/coverage PRs clear (per repo owner). Do the change/merge when runners are free — NOT during the current crunch — so this PR's own CI doesn't add to it.

Definition of done

Workflow-only change: valid YAML (actionlint green) + correct trigger/filter. Validated post-re-enable by observing that draft + behind PRs get updated without a per-commit rebase storm.

## Context The autoupdate `pull_request` trigger (added in #260) fires on the default event set — including **`synchronize`** — so every commit push to *any* open PR triggers a rebase-of-all-PRs (`PR_FILTER: all`), each re-running the full multi-API E2E matrix. With many concurrent PRs this **storms the GitHub Actions runners** (observed 2026-07-03; the workflow is currently **disabled** to relieve it). Repo owner confirmed tightening the trigger, and explicitly requires that **draft PRs still get updated**. ## Change (`.github/workflows/autoupdate.yml`) 1. Drop `synchronize` — narrow the trigger to: ```yaml pull_request: types: [opened, reopened, ready_for_review] branches: [main] ``` 2. Explicitly keep **draft PRs** in scope by pinning the action's ready-state filter: ```yaml env: GITHUB_TOKEN: ${{ secrets.AUTOUPDATE_TOKEN || secrets.GITHUB_TOKEN }} PR_FILTER: "all" PR_READY_STATE: "all" MERGE_CONFLICT_ACTION: "ignore" ``` (`PR_READY_STATE: all` is the action default, but set it explicitly so drafts are guaranteed updated.) ## Why drafts still get updated (dropping `synchronize` does NOT exclude them) - **`push: [main]`** rebases ALL behind PRs incl. drafts whenever main advances (`PR_FILTER: all` + `PR_READY_STATE: all`) — this is the case that matters, since a PR goes stale when *main* moves. - **`opened`** catches a draft opened while already behind. - `synchronize` was only firing on per-commit pushes to a PR — a PR getting a new commit doesn't make it behind main, so removing it doesn't leave drafts (or any PR) stale. ## Sequencing Workflow is currently disabled. **Apply this tightening and merge it BEFORE re-enabling** so autoupdate comes back storm-safe. Re-enable (`gh workflow enable autoupdate.yml`) only once the in-flight test/coverage PRs clear (per repo owner). Do the change/merge when runners are free — NOT during the current crunch — so this PR's own CI doesn't add to it. ## Definition of done Workflow-only change: valid YAML (actionlint green) + correct trigger/filter. Validated post-re-enable by observing that draft + behind PRs get updated without a per-commit rebase storm.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: JMR-dev/LibreMail#262