From ebd2408ffc8859abb2c73d1a18a9746b215c4bc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=82CHES?= Date: Fri, 20 Mar 2026 00:31:49 -0600 Subject: [PATCH] =?UTF-8?q?fix(ci):=20reduce=20GitHub=20Actions=20minutes?= =?UTF-8?q?=20~60-70%=20(~10k=20=E2=86=92=20~3-4k/month)=20(#1552)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove feat/** push trigger (PRs already cover feature branches) - Add concurrency groups with cancel-in-progress to kill stale runs - Add paths-ignore for docs/markdown/license/unrelated workflow changes - Consolidate secret-scan, no-gsd-dir, skill-references into single lint job - Restrict Windows runner (2x minute multiplier) to main push only Co-authored-by: Claude Opus 4.6 (1M context) --- .github/workflows/ci.yml | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fd42c1ef4..2ff321f6d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,24 +2,41 @@ name: CI on: push: - branches: [main, feat/**] + branches: [main] + paths-ignore: + - '**.md' + - 'docs/**' + - '.github/workflows/ai-triage.yml' + - '.github/workflows/build-native.yml' + - '.github/workflows/cleanup-dev-versions.yml' + - '.github/workflows/pipeline.yml' + - 'LICENSE' pull_request: branches: [main] + paths-ignore: + - '**.md' + - 'docs/**' + - '.github/workflows/ai-triage.yml' + - '.github/workflows/build-native.yml' + - '.github/workflows/cleanup-dev-versions.yml' + - '.github/workflows/pipeline.yml' + - 'LICENSE' + +concurrency: + group: ci-${{ github.ref }} + cancel-in-progress: true jobs: - secret-scan: + lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 with: fetch-depth: 0 + - name: Scan for hardcoded secrets run: bash scripts/secret-scan.sh --diff origin/main - no-gsd-dir: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v6 - name: Ensure .gsd/ is not checked in run: | if [ -d ".gsd" ]; then @@ -27,14 +44,11 @@ jobs: exit 1 fi - skill-references: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v6 - name: Setup Node.js uses: actions/setup-node@v6 with: node-version: '24' + - name: Validate skill references run: node scripts/check-skill-references.mjs @@ -72,6 +86,7 @@ jobs: run: npm run test:integration windows-portability: + if: github.event_name == 'push' && github.ref == 'refs/heads/main' runs-on: windows-latest steps: