File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -36,32 +36,34 @@ jobs:
3636 # Ensure base branch is available locally for diff
3737 echo "Step 0: prepare diff base"
3838 if [ "${{ github.event_name }}" = "pull_request" ]; then
39+ # PR: diff against base branch
3940 git fetch origin ${{ github.base_ref }}
4041 diff_base="origin/${{ github.base_ref }}"
4142 else
42- diff_base="HEAD~1"
43+ # Push: diff against previous commit safely
44+ if [ "${{ github.event.before }}" != "0000000000000000000000000000000000000000" ]; then
45+ diff_base="${{ github.event.before }}"
46+ else
47+ # Initial commit: diff against empty tree
48+ diff_base="$(git hash-object -t tree /dev/null)"
49+ fi
4350 fi
4451
4552 echo "Step 1: get changed files"
4653 files=$(git diff --name-only "$diff_base"...HEAD)
4754
48- # echo "Step 1: get changed files"
49- # files=$(git diff --name-only origin/${{ github.base_ref }}...HEAD)
50-
5155 echo "Step 2: get top-level directories"
5256 dirs=$(echo "$files" | cut -d/ -f1 | sort -u)
5357
5458 echo "Step 3: filter go projects"
5559 projects=()
5660 for dir in $dirs; do
5761 if [ -f "$dir/go.mod" ]; then
58- # projects+=("\"$dir\"")
5962 projects+=("$dir")
6063 fi
6164 done
6265
6366 echo "Step 4: build matrix json"
64- # matrix=$(printf '%s\n' "${projects[@]}" | jq -R . | jq -cs .)
6567 if [ ${#projects[@]} -eq 0 ]; then
6668 matrix="[]"
6769 else
You can’t perform that action at this time.
0 commit comments