Skip to content

Commit 9503edb

Browse files
auricomclaude
authored andcommitted
ci: skip code jobs on docs-only changes (#3295)
Add a `changes` job using dorny/paths-filter to detect whether any non-documentation files were modified. All heavy jobs (lint, docker, test, docker-tests, proto) are gated behind this check and skipped when the PR only touches docs/** or markdown files. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent c64f34b commit 9503edb

1 file changed

Lines changed: 32 additions & 2 deletions

File tree

.github/workflows/ci.yml

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,30 @@ name: CI
99

1010
permissions: {}
1111
jobs:
12+
changes:
13+
name: Detect code changes
14+
runs-on: ubuntu-latest
15+
permissions:
16+
contents: read
17+
pull-requests: read
18+
outputs:
19+
code: ${{ steps.filter.outputs.code }}
20+
steps:
21+
- uses: actions/checkout@v6.0.2
22+
- uses: dorny/paths-filter@v3
23+
id: filter
24+
with:
25+
filters: |
26+
code:
27+
- '**'
28+
- '!docs/**'
29+
- '!**/*.md'
30+
- '!.github/workflows/docs_*.yml'
31+
1232
determine-image-tag:
1333
name: Determine Image Tag
34+
needs: changes
35+
if: needs.changes.outputs.code == 'true'
1436
runs-on: ubuntu-latest
1537
permissions:
1638
contents: read
@@ -39,12 +61,15 @@ jobs:
3961
echo "tag=$TAG" >> $GITHUB_OUTPUT
4062
4163
lint:
64+
needs: changes
65+
if: needs.changes.outputs.code == 'true'
4266
permissions:
4367
contents: read
4468
uses: ./.github/workflows/lint.yml
4569

4670
docker:
47-
needs: determine-image-tag
71+
needs: [determine-image-tag, changes]
72+
if: needs.changes.outputs.code == 'true'
4873
uses: ./.github/workflows/docker-build-push.yml
4974
secrets: inherit
5075
permissions:
@@ -60,6 +85,8 @@ jobs:
6085
]
6186
6287
test:
88+
needs: changes
89+
if: needs.changes.outputs.code == 'true'
6390
permissions:
6491
actions: read
6592
contents: read
@@ -68,7 +95,8 @@ jobs:
6895
secrets: inherit
6996

7097
docker-tests:
71-
needs: [determine-image-tag, docker]
98+
needs: [determine-image-tag, docker, changes]
99+
if: needs.changes.outputs.code == 'true'
72100
uses: ./.github/workflows/docker-tests.yml
73101
secrets: inherit
74102
permissions:
@@ -77,6 +105,8 @@ jobs:
77105
image-tag: ${{ needs.determine-image-tag.outputs.tag }}
78106

79107
proto:
108+
needs: changes
109+
if: needs.changes.outputs.code == 'true'
80110
permissions:
81111
contents: read
82112
pull-requests: write

0 commit comments

Comments
 (0)