From 84fcdd5cb2ecf2d047964254920ae1b8fe91c7f3 Mon Sep 17 00:00:00 2001 From: Mohamed Ibrahim Date: Sun, 14 Jun 2026 15:59:37 +0100 Subject: [PATCH] ci: skip the build+test gate on docs/site-only changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit build.yml's gate runs the full JVM + iOS build (~25 min of macOS runner for the iOS framework link). Docs (**.md, docs/**) and website (site/**) changes can't affect the Kotlin/Gradle build or tests, so running the gate on them is pure waste — PRs #28 (roadmap docs) and #30 (website CSS) each triggered a needless iOS build. paths-ignore skips the gate when a PR (or push to main) touches only those paths; any PR that also touches code/build files still runs it fully. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/build.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0117cff..daefa2e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,10 +9,25 @@ name: Build & Test # correctness gate. A PR that introduces a failing unit test is blocked here: # - a broken common/JVM test fails the `jvm` job's testDebugUnitTest step; # - a broken iOS test fails the `ios` job's iosSimulatorArm64Test step. +# Docs/site-only changes skip this gate (paths-ignore): they can't affect the +# Kotlin/Gradle build or tests, so there's no point spending ~25 min of macOS +# runner time linking the iOS frameworks for a README or CSS edit. Any PR that +# also touches code/build files still runs the full gate. (The site has its own +# pages.yml deploy; docs are plain markdown.) on: pull_request: + paths-ignore: + - "**.md" + - "docs/**" + - "site/**" + - ".github/workflows/pages.yml" push: branches: [main] + paths-ignore: + - "**.md" + - "docs/**" + - "site/**" + - ".github/workflows/pages.yml" permissions: contents: read