[PR #8577] [CLOSED] chore(ci): skip non-essential jobs at the job level during merge queue #8074

Closed
opened 2026-03-13 13:59:12 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/better-auth/better-auth/pull/8577
Author: @starslingdev[bot]
Created: 3/12/2026
Status: Closed

Base: canaryHead: starsling/merge-queue-skip


📝 Commits (1)

  • ecc47b7 chore(ci): skip non-essential jobs at the job level during merge queue

📊 Changes

2 files changed (+3 additions, -37 deletions)

View changed files

📝 .github/workflows/ci.yml (+1 -12)
📝 .github/workflows/e2e.yml (+2 -25)

📄 Description

chore(ci): skip non-essential jobs at the job level during merge queue

Nine jobs across CI and E2E workflows currently provision runners during merge_group events only to skip all steps via 28 step-level if: github.event_name != 'merge_group' conditions. Each merge queue entry wastes ~180s of runner provisioning time across 9 no-op jobs. This moves the conditional to the job level — GitHub Actions treats skipped required checks as passing for merge queues — so these jobs report success without provisioning any runners.

Fix

  • ci.ymltest — Add if: github.event_name != 'merge_group' at the job level. Remove 9 step-level if: conditions and the "Skip tests in merge queue" echo step. Both matrix variants (Node 22.x, 24.x) now skip without provisioning runners.
  • e2e.ymlintegration — Same pattern: add job-level if:, remove 9 step-level conditions and skip echo step.
  • e2e.ymladapter-integration — Same pattern: add job-level if:, remove 10 step-level conditions and skip echo step. All 6 matrix variants now skip without provisioning runners.
  • smoke, lint, typecheck jobs are intentionally unchanged — they run fully during merge queue events and are required status checks that perform real work.

Estimated time saved

~390 merge queue runs/month (2026-02-10 → 2026-03-11, 30d), each provisioning 9 runners that do no work (~20s overhead per runner):

Source Per run Savings/mo
adapter-integration (6 runners × ~20s) ~120s ~780 min
test (2 runners × ~20s) ~40s ~260 min
integration (1 runner × ~20s) ~20s ~130 min
Total ~180s ~1,170 min (~19.5 hrs/yr)

StarSling Agent verified with 5 A/B benchmark runs (20 test jobs) — patch applies cleanly, baseline ≈ patched (P50 222s vs 222s). VERY LOW risk — the Canary Rules ruleset requires 5 checks (lint, test (22.x), Smoke test, @better-auth-test/memory-adapter Integration Test, typecheck), and GitHub Actions treats skipped jobs as passing for merge queues (verified in run 22911917720).

Changes

  • .github/workflows/ci.yml
  • .github/workflows/e2e.yml

Summary by cubic

Skip non-essential CI/E2E jobs during merge queue by moving the merge_group condition to the job level, so Actions marks them passed without starting runners. Saves ~180s per queue run by avoiding runner provisioning.

  • Refactors
    • .github/workflows/ci.ymltest: add job-level if: github.event_name != 'merge_group'; remove step-level guards. Node 22.x and 24.x matrices now skip without provisioning.
    • .github/workflows/e2e.ymlintegration and adapter-integration: same change; all 6 adapter matrix variants skip provisioning.
    • smoke, lint, typecheck unchanged; they still run as required checks.

Written for commit ecc47b7b72. Summary will update on new commits.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/better-auth/better-auth/pull/8577 **Author:** [@starslingdev[bot]](https://github.com/apps/starslingdev) **Created:** 3/12/2026 **Status:** ❌ Closed **Base:** `canary` ← **Head:** `starsling/merge-queue-skip` --- ### 📝 Commits (1) - [`ecc47b7`](https://github.com/better-auth/better-auth/commit/ecc47b7b722ddf59c0116dac28d6170fefa31ad5) chore(ci): skip non-essential jobs at the job level during merge queue ### 📊 Changes **2 files changed** (+3 additions, -37 deletions) <details> <summary>View changed files</summary> 📝 `.github/workflows/ci.yml` (+1 -12) 📝 `.github/workflows/e2e.yml` (+2 -25) </details> ### 📄 Description ## chore(ci): skip non-essential jobs at the job level during merge queue Nine jobs across CI and E2E workflows currently provision runners during `merge_group` events only to skip all steps via 28 step-level `if: github.event_name != 'merge_group'` conditions. Each merge queue entry wastes ~180s of runner provisioning time across 9 no-op jobs. This moves the conditional to the job level — GitHub Actions [treats skipped required checks as passing](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets#additional-settings) for merge queues — so these jobs report success without provisioning any runners. ### Fix - **`ci.yml` — `test`** — Add `if: github.event_name != 'merge_group'` at the job level. Remove 9 step-level `if:` conditions and the "Skip tests in merge queue" echo step. Both matrix variants (Node 22.x, 24.x) now skip without provisioning runners. - **`e2e.yml` — `integration`** — Same pattern: add job-level `if:`, remove 9 step-level conditions and skip echo step. - **`e2e.yml` — `adapter-integration`** — Same pattern: add job-level `if:`, remove 10 step-level conditions and skip echo step. All 6 matrix variants now skip without provisioning runners. - **`smoke`, `lint`, `typecheck` jobs are intentionally unchanged** — they run fully during merge queue events and are required status checks that perform real work. ### Estimated time saved ~390 merge queue runs/month (2026-02-10 → 2026-03-11, 30d), each provisioning 9 runners that do no work (~20s overhead per runner): | Source | Per run | Savings/mo | |--------|---------|------------| | adapter-integration (6 runners × ~20s) | ~120s | ~780 min | | test (2 runners × ~20s) | ~40s | ~260 min | | integration (1 runner × ~20s) | ~20s | ~130 min | | **Total** | **~180s** | **~1,170 min (~19.5 hrs/yr)** | StarSling Agent verified with 5 A/B benchmark runs (20 test jobs) — patch applies cleanly, baseline ≈ patched (P50 222s vs 222s). **VERY LOW** risk — the `Canary Rules` ruleset requires 5 checks (`lint`, `test (22.x)`, `Smoke test`, `@better-auth-test/memory-adapter Integration Test`, `typecheck`), and GitHub Actions treats skipped jobs as passing for merge queues (verified in run [22911917720](https://github.com/better-auth/better-auth/actions/runs/22911917720)). ### Changes - `.github/workflows/ci.yml` - `.github/workflows/e2e.yml` <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Skip non-essential CI/E2E jobs during merge queue by moving the `merge_group` condition to the job level, so Actions marks them passed without starting runners. Saves ~180s per queue run by avoiding runner provisioning. - **Refactors** - `.github/workflows/ci.yml` — `test`: add job-level `if: github.event_name != 'merge_group'`; remove step-level guards. Node `22.x` and `24.x` matrices now skip without provisioning. - `.github/workflows/e2e.yml` — `integration` and `adapter-integration`: same change; all 6 adapter matrix variants skip provisioning. - `smoke`, `lint`, `typecheck` unchanged; they still run as required checks. <sup>Written for commit ecc47b7b722ddf59c0116dac28d6170fefa31ad5. Summary will update on new commits.</sup> <!-- End of auto-generated description by cubic. --> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-03-13 13:59:12 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/better-auth#8074