From 94a27509b97147a3fce7eb9c060ef14c6edcef33 Mon Sep 17 00:00:00 2001 From: Michael Gilardi <11632652+mgilardi@users.noreply.github.com> Date: Mon, 9 Nov 2026 18:03:38 -0700 Subject: [PATCH 1/2] Follow the Actions minutes rules in CI Owner's rules of 2026-11-10 (ops rules/actions-minutes.md): builds run once per change, on pushes to main and on pull requests, never both for the same commit; draft PRs and docs-only changes don't build; a newer push cancels the older run; every job has a timeout (15 minutes for builds, 20 for releases), and releases are never cancelled mid-way. This repo is public, so its minutes are free; the rules apply anyway. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/build.yml | 9 +++++++++ .github/workflows/release.yml | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6942093..b67e437 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,11 +2,20 @@ name: Build on: push: + branches: [main] + paths-ignore: ['**.md', 'docs/**'] pull_request: + paths-ignore: ['**.md', 'docs/**'] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true jobs: build: + if: github.event_name != 'pull_request' || !github.event.pull_request.draft runs-on: ubuntu-latest + timeout-minutes: 15 steps: - uses: actions/checkout@v4 - name: Leak check (emails and build output; private terms are only checked locally) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f32eb4c..615dc2f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -8,9 +8,14 @@ on: permissions: contents: write +concurrency: + group: release-${{ github.ref }} + cancel-in-progress: false + jobs: release: runs-on: ubuntu-latest + timeout-minutes: 20 steps: - uses: actions/checkout@v4 - name: Leak check From daf7b65403847edddd8849aa4e94961936045285 Mon Sep 17 00:00:00 2001 From: Michael Gilardi <11632652+mgilardi@users.noreply.github.com> Date: Mon, 9 Nov 2026 18:05:32 -0700 Subject: [PATCH 2/2] Run the leak check on every change, docs included The build now skips docs-only changes, which also skipped its leak check, and README or docs text is where a stray email address most often slips in (found by code-44 on Voidwell#2). The check gets its own workflow with no path filter: a few seconds on ubuntu, no Gradle. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/leak-check.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .github/workflows/leak-check.yml diff --git a/.github/workflows/leak-check.yml b/.github/workflows/leak-check.yml new file mode 100644 index 0000000..9a0123b --- /dev/null +++ b/.github/workflows/leak-check.yml @@ -0,0 +1,21 @@ +name: Leak check + +# Every change, docs included: the build skips docs-only changes, and README or docs text is where a stray +# email address most often slips in. A few seconds on ubuntu, no Gradle. +on: + push: + branches: [main] + pull_request: + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + leak-check: + if: github.event_name != 'pull_request' || !github.event.pull_request.draft + runs-on: ubuntu-latest + timeout-minutes: 5 + steps: + - uses: actions/checkout@v4 + - run: bash scripts/leak-check.sh