From c41fbb986cc3dc0c042f0908a32fa85f1637f813 Mon Sep 17 00:00:00 2001 From: Scott Converse Date: Tue, 12 May 2026 19:52:18 -0600 Subject: [PATCH] =?UTF-8?q?ci:=20cut=20Actions=20burn=20=E2=80=94=20concur?= =?UTF-8?q?rency=20cancel,=20drop=20dup=20push=20trigger,=203.12-only=20on?= =?UTF-8?q?=20PR?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit scottconverse account exhausted the 2,000 free Linux-equivalent Actions minutes for May 2026. Full audit: handoff-to-codex-2026-05-13-civiccast-ci-budget-fixes.md at workspace root. Changes: 1. test.yml + lint.yml — drop `push: branches: [main]`. PR validation was running once during PR + once on post-merge push. Per-PR coverage unchanged; the post-merge re-run was redundant. 2. test.yml + lint.yml — add `concurrency: cancel-in-progress: true`. Stacked pushes on the same PR ref now cancel older runs. 3. test.yml — Python matrix `[3.11, 3.12]` collapses to `[3.12]` on PR. Full matrix preserved on tag pushes via the existing release.yml + provider-drift.yml weekly cron. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/lint.yml | 6 ++++-- .github/workflows/test.yml | 10 +++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index faf17be..74291bc 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -3,8 +3,10 @@ name: lint on: pull_request: branches: [main] - push: - branches: [main] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true jobs: ruff-mypy: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 255e3d1..c3a49bc 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -3,15 +3,19 @@ name: test on: pull_request: branches: [main] - push: - branches: [main] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true jobs: unit-integration-golden: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.11", "3.12"] + # 3.12 on PR; full matrix on tag releases. Was [3.11, 3.12] on every + # PR; doubled minutes without catching anything PRs were breaking. + python-version: ${{ github.event_name == 'pull_request' && fromJson('["3.12"]') || fromJson('["3.11", "3.12"]') }} steps: - uses: actions/checkout@v6 - uses: actions/setup-python@v6