From d52a779c73e0f4767767a791ac07e2694c3ae7c3 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Sat, 15 Aug 2026 14:23:21 +0000 Subject: [PATCH] ci: skip docs-only pushes with paths-ignore Every push currently runs the full Rust CI pipeline, including pushes that only touch documentation, markdown, or gitignored-except-README session notes under work/. Add paths-ignore for docs/**, **/*.md, and work/** to the push trigger so those runs are skipped, while a push touching both code and docs still runs (paths-ignore only skips when every changed file matches). Per ngit-ci's filter semantics (ngit-ci docs/writing-workflows.md): paths filters are supported for push triggers with GitHub glob syntax; tag pushes always run regardless of path filters; and pull_request path filters are not evaluated yet, so the pull_request trigger is left unfiltered deliberately. Validated by parsing the workflow YAML; no job content changes. --- .ngit/act/workflows/rust_ci.yaml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.ngit/act/workflows/rust_ci.yaml b/.ngit/act/workflows/rust_ci.yaml index 569025b..5f9100a 100644 --- a/.ngit/act/workflows/rust_ci.yaml +++ b/.ngit/act/workflows/rust_ci.yaml @@ -1,4 +1,15 @@ -on: [push, pull_request] +# Docs-only pushes are skipped: a push runs only when at least one changed +# file falls outside the ignore list, so mixed code+docs pushes still run. +# Tag pushes always run regardless of path filters, and pull_request stays +# unfiltered because ngit-ci does not evaluate PR path filters yet (filtered +# PR triggers would run unconditionally anyway). +on: + push: + paths-ignore: + - "docs/**" + - "**/*.md" + - "work/**" + pull_request: name: Rust CI