Skip to content

Commit 5c81b26

Browse files
committed
fix(ci): detect untracked generated files in regen diff checks
git diff --quiet only reports tracked-file changes, so a brand-new generated file (e.g. a future <thing>_gen.go) would leave changed=false and silently skip formatting, tests, and PR creation. Switch both diff checks to git status --porcelain --untracked-files=all, which also reports ?? entries for untracked paths.
1 parent 7d36fe8 commit 5c81b26

1 file changed

Lines changed: 6 additions & 4 deletions

File tree

.github/workflows/regenerate-config.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,9 @@ jobs:
104104
- name: Check for codegen changes (pre-format)
105105
id: codegen_diff
106106
run: |
107-
git diff --exit-code --quiet internal/codegen/mappings.yaml internal/resources/projectconfig/ \
108-
|| echo "changed=true" >> "$GITHUB_OUTPUT"
107+
if [ -n "$(git status --porcelain --untracked-files=all -- internal/codegen/mappings.yaml internal/resources/projectconfig/)" ]; then
108+
echo "changed=true" >> "$GITHUB_OUTPUT"
109+
fi
109110
110111
- name: Run make format (regenerate docs, gofmt, lint --fix)
111112
if: steps.codegen_diff.outputs.changed == 'true'
@@ -114,8 +115,9 @@ jobs:
114115
- name: Check for any file changes (post-format)
115116
id: diff
116117
run: |
117-
git diff --exit-code --quiet \
118-
|| echo "changed=true" >> "$GITHUB_OUTPUT"
118+
if [ -n "$(git status --porcelain --untracked-files=all)" ]; then
119+
echo "changed=true" >> "$GITHUB_OUTPUT"
120+
fi
119121
120122
- name: Build and test
121123
if: steps.diff.outputs.changed == 'true'

0 commit comments

Comments
 (0)