* whitespace check * fix formatting * fix indentation * eof new line * add EOF new line check * revert accidental deletion * rename
55 lines
1.6 KiB
YAML
55 lines
1.6 KiB
YAML
name: Trailing Whitespace Check
|
|
|
|
on:
|
|
pull_request:
|
|
types: [ opened, reopened, synchronize, ready_for_review ]
|
|
|
|
jobs:
|
|
build:
|
|
name: Trailing Whitespace Check
|
|
if: github.event.pull_request.draft == false
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4.2.2
|
|
- name: Get changed text files
|
|
id: changed-files
|
|
uses: tj-actions/changed-files@v46.0.5
|
|
with:
|
|
files: |
|
|
**.cs
|
|
**.yml
|
|
**.swsl
|
|
**.json
|
|
**.py
|
|
- name: Check for trailing whitespace and EOF newline
|
|
env:
|
|
ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
|
|
run: |
|
|
has_trailing_whitespace=0
|
|
has_missing_eof_newline=0
|
|
|
|
for file in ${ALL_CHANGED_FILES}; do
|
|
echo "Checking $file"
|
|
|
|
# Check for trailing whitespace
|
|
if grep -qP '[ \t]+$' "$file"; then
|
|
echo "::error file=$file::Trailing whitespace found"
|
|
has_trailing_whitespace=1
|
|
fi
|
|
|
|
# Check for missing EOF newline
|
|
if [ -f "$file" ] && [ -s "$file" ]; then
|
|
last_char=$(tail -c 1 "$file")
|
|
if [ "$last_char" != "" ] && [ "$last_char" != $'\n' ]; then
|
|
echo "::error file=$file::Missing newline at end of file"
|
|
has_missing_eof_newline=1
|
|
fi
|
|
fi
|
|
done
|
|
|
|
if [ "$has_trailing_whitespace" -eq 1 ] || [ "$has_missing_eof_newline" -eq 1 ]; then
|
|
echo "Issues found: trailing whitespace or missing EOF newline."
|
|
echo "We recommend using an IDE to prevent this from happening."
|
|
exit 1
|
|
fi
|