From 35b398bcf712fe0731cbbe63f745785cfb824536 Mon Sep 17 00:00:00 2001 From: "turbolytics.io" Date: Fri, 9 Oct 2026 11:59:02 -0400 Subject: [PATCH] ci: a pull request that changes only docs skips CI A pull request that touched only Markdown or docs/ ran every CI job. That spent runner time on changes that cannot break a build. The pull_request trigger now carries a paths filter that leaves those out. docs/coverage stays in, because the Coverage job regenerates the page under it. CI on a push now runs for main only. Before, it ran for every branch, so a docs-only pull request would have run CI through its push anyway, and every other pull request ran CI twice. If the filter is wrong, a pull request that needed CI merges without it. The push to main still runs the full suite, so the break shows on main instead of on the pull request. No check is required to merge, so a skipped run cannot block a pull request. --- .github/workflows/ci.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0a5f8976..51ddf403 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,5 +1,16 @@ name: CI -on: [push] +on: + push: + branches: [main] + # A change to docs or Markdown alone cannot break a build, so it skips CI. + # docs/coverage still runs it: the Coverage job regenerates the page there. + pull_request: + branches: [main] + paths: + - "**" + - "!docs/**" + - "!**.md" + - "docs/coverage/**" jobs: # The Go engine (sqlflow), unit pass only. Fast feedback with no Docker: the # integration tests start containers, and the job below runs those. -short