Skip to content

Commit 39bfcef

Browse files
PicazsooCopilot
andcommitted
ci: skip linux/windows tests for non-source changes
Add setup job to detect source changes (modules/, pom.xml, .mvn/ only). Gate build jobs with if: needs.setup.outputs.source-changed == 'true' to skip expensive platform-specific tests when only .github/ or docs files changed. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent d86b3c1 commit 39bfcef

2 files changed

Lines changed: 62 additions & 0 deletions

File tree

.github/workflows/linux.yaml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,40 @@ on:
1111
- '[5-9]+.[0-9]+.x'
1212

1313
jobs:
14+
setup:
15+
name: Detect source changes
16+
runs-on: ubuntu-latest
17+
outputs:
18+
source-changed: ${{ steps.check.outputs.source-changed }}
19+
steps:
20+
- uses: actions/checkout@v5
21+
with:
22+
fetch-depth: 0
23+
- id: check
24+
shell: bash
25+
env:
26+
BASE_SHA: ${{ github.event.pull_request.base.sha || github.event.before }}
27+
HEAD_SHA: ${{ github.sha }}
28+
run: |
29+
if [[ "$BASE_SHA" == "0000000000000000000000000000000000000000" ]] || [[ -z "$BASE_SHA" ]]; then
30+
BASE_SHA=$(git rev-parse HEAD~1 2>/dev/null || echo "")
31+
fi
32+
if [[ -n "$BASE_SHA" ]]; then
33+
CHANGED=$(git diff --name-only "$BASE_SHA" "$HEAD_SHA" 2>/dev/null || git diff --name-only HEAD~1 HEAD)
34+
else
35+
CHANGED=$(git diff --name-only HEAD~1 HEAD)
36+
fi
37+
if echo "$CHANGED" | grep -qE '^(modules/|pom\.xml|\.mvn/)'; then
38+
echo "source-changed=true" >> "$GITHUB_OUTPUT"
39+
else
40+
echo "source-changed=false" >> "$GITHUB_OUTPUT"
41+
fi
42+
1443
build:
1544
name: 'Build: JDK ${{ matrix.java }} (${{ matrix.os }})'
1645
runs-on: ${{ matrix.os }}
46+
needs: setup
47+
if: needs.setup.outputs.source-changed == 'true'
1748
strategy:
1849
matrix:
1950
java: [11, 17]

.github/workflows/windows.yaml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,40 @@ on:
1111
- '[5-9]+.[0-9]+.x'
1212

1313
jobs:
14+
setup:
15+
name: Detect source changes
16+
runs-on: ubuntu-latest
17+
outputs:
18+
source-changed: ${{ steps.check.outputs.source-changed }}
19+
steps:
20+
- uses: actions/checkout@v5
21+
with:
22+
fetch-depth: 0
23+
- id: check
24+
shell: bash
25+
env:
26+
BASE_SHA: ${{ github.event.pull_request.base.sha || github.event.before }}
27+
HEAD_SHA: ${{ github.sha }}
28+
run: |
29+
if [[ "$BASE_SHA" == "0000000000000000000000000000000000000000" ]] || [[ -z "$BASE_SHA" ]]; then
30+
BASE_SHA=$(git rev-parse HEAD~1 2>/dev/null || echo "")
31+
fi
32+
if [[ -n "$BASE_SHA" ]]; then
33+
CHANGED=$(git diff --name-only "$BASE_SHA" "$HEAD_SHA" 2>/dev/null || git diff --name-only HEAD~1 HEAD)
34+
else
35+
CHANGED=$(git diff --name-only HEAD~1 HEAD)
36+
fi
37+
if echo "$CHANGED" | grep -qE '^(modules/|pom\.xml|\.mvn/)'; then
38+
echo "source-changed=true" >> "$GITHUB_OUTPUT"
39+
else
40+
echo "source-changed=false" >> "$GITHUB_OUTPUT"
41+
fi
42+
1443
build:
1544
name: Build
1645
runs-on: windows-latest
46+
needs: setup
47+
if: needs.setup.outputs.source-changed == 'true'
1748
strategy:
1849
matrix:
1950
java: [11, 17]

0 commit comments

Comments
 (0)